Index: scribus/manager/dock_manager.cpp
===================================================================
--- scribus/manager/dock_manager.cpp	(Revision 26174)
+++ scribus/manager/dock_manager.cpp	(Arbeitskopie)
@@ -230,7 +230,8 @@
 	* MinimumSizeHintFromContentMinimumSize
 	*/
 
-	dock->setMinimumSizeHintMode(CDockWidget::MinimumSizeHintFromContent);
+	dock->setMinimumSizeHintMode(CDockWidget::MinimumSizeHintFromDockWidgetMinimumSize);
+	dock->setMinimumWidth(dock->widget()->minimumSizeHint().width());
 	connect( dock, &CDockWidget::viewToggled, this, &DockManager::restoreHiddenWorkspace);
 }
 
Index: scribus/ui/propertiespalette.cpp
===================================================================
--- scribus/ui/propertiespalette.cpp	(Revision 26174)
+++ scribus/ui/propertiespalette.cpp	(Arbeitskopie)
@@ -55,38 +55,45 @@
 
 	// XZY
 	xyzPal = new PropertiesPalette_XYZ( this );
-	scXYZ = new SectionContainer("X, Y, &Z");
+	scXYZ = new SectionContainer("X, Y, &Z", "SectionPPXYZ", true, true);
+	scXYZ->setCanSaveState(true);
 	scXYZ->setWidget(xyzPal);
+	scXYZ->restorePreferences();
 
 	// Drop Shadow
 	shadowPal = new PropertiesPalette_Shadow( this );
-	scShadow = new SectionContainer("Drop Shadow");
+	scShadow = new SectionContainer("Drop Shadow", "SectionPPDropShadow", true, false);
+	scShadow->setCanSaveState(true);
 	scShadow->setWidget(shadowPal);
-	scShadow->setIsCollapsed(true);
+	scShadow->restorePreferences();
 
 	// Shape
 	shapePal = new PropertiesPalette_Shape( this );
-	scShape = new SectionContainer("&Shape");
+	scShape = new SectionContainer("&Shape", "SectionPPShape", true, false);
+	scShape->setCanSaveState(true);
 	scShape->setWidget(shapePal);
-	scShape->setIsCollapsed(true);
+	scShape->restorePreferences();
 
 	// Fill
 	fillPal = new PropertiesPalette_Fill(this);
-	scFill = new SectionContainer("&Fill");
+	scFill = new SectionContainer("&Fill", "SectionPPFill", true, false);
+	scFill->setCanSaveState(true);
 	scFill->setWidget(fillPal);
-	scFill->setIsCollapsed(true);
+	scFill->restorePreferences();
 
 	// Line
 	linePal = new PropertiesPalette_Line(this);
-	scLine = new SectionContainer("&Line");
+	scLine = new SectionContainer("&Line", "SectionPPLine", true, false);
+	scLine->setCanSaveState(true);
 	scLine->setWidget(linePal);
-	scLine->setIsCollapsed(true);
+	scLine->restorePreferences();
 
 	// Attributes
 	attributesPal = new PropertiesPalette_Attributes(this);
-	scAttributes = new SectionContainer("&Attributes");
+	scAttributes = new SectionContainer("&Attributes", "SectionPPAttributes", true, false);
+	scAttributes->setCanSaveState(true);
 	scAttributes->setWidget(attributesPal);
-	scAttributes->setIsCollapsed(true);
+	scAttributes->restorePreferences();
 
 	// Layout stack
 	QVBoxLayout * lyt = new QVBoxLayout();
@@ -107,6 +114,8 @@
 	languageChange();
 	enablePalettes(false);
 
+
+
 	ColorPicker *colorPicker = WidgetManager::instance().colorPicker();
 	if(colorPicker)
 	{
Index: scribus/ui/propertiespalette_text.cpp
===================================================================
--- scribus/ui/propertiespalette_text.cpp	(Revision 26174)
+++ scribus/ui/propertiespalette_text.cpp	(Arbeitskopie)
@@ -47,59 +47,70 @@
 {
 
 	advancedWidgets = new PropertyWidget_Advanced(this);
-	scAdvanced = new SectionContainer(tr("Advanced Settings"));
-	scAdvanced->setWidget(advancedWidgets);
-	scAdvanced->setIsCollapsed(true);
+	scAdvanced = new SectionContainer(tr("Advanced Settings"), "SectionTXAdvanced", true, false);
+	scAdvanced->setCanSaveState(true);
+	scAdvanced->setWidget(advancedWidgets);	
+	scAdvanced->restorePreferences();
 
 	distanceWidgets = new PropertyWidget_Distance(this);
-	scDistance = new SectionContainer(tr("Columns && Text Distances"));
+	scDistance = new SectionContainer(tr("Columns && Text Distances"), "SectionTXColDist", true, false);
+	scDistance->setCanSaveState(true);
 	scDistance->setWidget(distanceWidgets);
-	scDistance->setIsCollapsed(true);
+	scDistance->restorePreferences();
 
 	flopBox = new PropertyWidget_Flop(this);
-	scFlop = new SectionContainer(tr("First Line Offset"));
+	scFlop = new SectionContainer(tr("First Line Offset"), "SectionTXLineOffset", true, false);
+	scFlop->setCanSaveState(true);
 	scFlop->setWidget(flopBox);
-	scFlop->setIsCollapsed(true);
+	scFlop->restorePreferences();
 
 	fontfeaturesWidget = new PropertyWidget_FontFeatures(this);
-	scFontFeatures = new SectionContainer(tr("Font Features"));
+	scFontFeatures = new SectionContainer(tr("Font Features"), "SectionTXFontFeatures", true, false);
+	scFontFeatures->setCanSaveState(true);
 	scFontFeatures->setWidget(fontfeaturesWidget);
-	scFontFeatures->setIsCollapsed(true);
+	scFontFeatures->restorePreferences();
 
 	hyphenationWidget = new PropertyWidget_Hyphenation(this);
-	scHyphenation = new SectionContainer(tr("Hyphenation"));
+	scHyphenation = new SectionContainer(tr("Hyphenation"), "SectionTXHyphenation", true, false);
+	scHyphenation->setCanSaveState(true);
 	scHyphenation->setWidget(hyphenationWidget);
-	scHyphenation->setIsCollapsed(true);
+	scHyphenation->restorePreferences();
 
 	optMargins = new PropertyWidget_OptMargins(this);
-	scOptMargins = new SectionContainer(tr("Optical Margins"));
+	scOptMargins = new SectionContainer(tr("Optical Margins"), "SectionTXMargins", true, false);
+	scOptMargins->setCanSaveState(true);
 	scOptMargins->setWidget(optMargins);
-	scOptMargins->setIsCollapsed(true);
+	scOptMargins->restorePreferences();
 
 	orphanBox = new PropertyWidget_Orphans(this);
-	scOrphans = new SectionContainer(tr("Orphans and Widows"));
+	scOrphans = new SectionContainer(tr("Orphans and Widows"), "SectionTXOrphansWidow", true, false);
+	scOrphans->setCanSaveState(true);
 	scOrphans->setWidget(orphanBox);
-	scOrphans->setIsCollapsed(true);
+	scOrphans->restorePreferences();
 
 	parEffectWidgets = new PropertyWidget_ParEffect(this);
-	scParEffect = new SectionContainer(tr("Paragraph Effects"));
+	scParEffect = new SectionContainer(tr("Paragraph Effects"), "SectionTXEffects", true, false);
+	scParEffect->setCanSaveState(true);
 	scParEffect->setWidget(parEffectWidgets);
-	scParEffect->setIsCollapsed(true);
+	scParEffect->restorePreferences();
 
 	pathTextWidgets = new PropertyWidget_PathText(this);
-	scPathText = new SectionContainer(tr("Path Text Properties"));
+	scPathText = new SectionContainer(tr("Path Text Properties"), "SectionTXPathText", true, false);
+	scPathText->setCanSaveState(true);
 	scPathText->setWidget(pathTextWidgets);
-	scPathText->setIsCollapsed(true);
+	scPathText->restorePreferences();
 
 	textWidgets = new PropertyWidget_Text(this);
-	scText = new SectionContainer(tr("Text"));
+	scText = new SectionContainer(tr("Text"), "SectionTXText", true, true);
+	scText->setCanSaveState(true);
 	scText->setWidget(textWidgets);
-	scText->setIsCollapsed(false);
+	scText->restorePreferences();
 
 	colorWidgets = new PropertyWidget_TextColor(this);
-	scTextColor = new SectionContainer(tr("Color && Effects"));
+	scTextColor = new SectionContainer(tr("Color && Effects"), "SectionTXColorEffects", true, false);
+	scTextColor->setCanSaveState(true);
 	scTextColor->setWidget(colorWidgets);
-	scTextColor->setIsCollapsed(true);
+	scTextColor->restorePreferences();
 
 	// Layout stack
 	QVBoxLayout * lyt = new QVBoxLayout();
Index: scribus/ui/widgets/section_container.cpp
===================================================================
--- scribus/ui/widgets/section_container.cpp	(Revision 26174)
+++ scribus/ui/widgets/section_container.cpp	(Arbeitskopie)
@@ -9,6 +9,8 @@
 #include "iconmanager.h"
 #include "scribusapp.h"
 #include "util_gui.h"
+#include "prefsmanager.h"
+#include "prefsfile.h"
 #endif
 
 /* *********************************************************************************
@@ -20,16 +22,18 @@
  */
 
 SectionContainer::SectionContainer(QWidget *parent)
-	: SectionContainer("Title", true, parent) {}
+	: SectionContainer("Title", "", true, parent) {}
 
-SectionContainer::SectionContainer(QString title, bool isCollapsible,
+SectionContainer::SectionContainer(QString title, QString objectName, bool isCollapsible, bool isExpanded,
 								   QWidget *parent)
 	: QWidget{parent}
 {
+
+	if(!objectName.isEmpty())
+		setObjectName(objectName);
+
 	header = new SectionContainerHeader(title);
-	m_isCollapsible = isCollapsible;
-	m_isCollapsed = false;
-	m_hasStyle = true;
+	m_isCollapsed = !isExpanded;
 
 	// Main Layout
 	mainLayout = new QVBoxLayout(this);
@@ -46,6 +50,7 @@
 
 	// initial Setup
 	setIsCollapsible(isCollapsible);
+	setIsCollapsedInternal(m_isCollapsed);
 	connectSlots();
 }
 
@@ -103,6 +108,16 @@
 	return m_hasStyle;
 }
 
+void SectionContainer::setCanSaveState(bool saveState)
+{
+	m_canSaveState = saveState;
+}
+
+bool SectionContainer::canSaveState()
+{
+	return m_canSaveState;
+}
+
 void SectionContainer::setIsCollapsible(bool isCollapsible)
 {
 	m_isCollapsible = isCollapsible;
@@ -124,6 +139,22 @@
 	if (isCollapsible() == false)
 		return;
 
+	setIsCollapsedInternal(state);
+
+#ifndef EXCLUDE_FOR_DESIGNER_PLUGIN
+	savePreferences();
+#endif
+
+	emit collapsedStateChanged(m_isCollapsed);
+	emit sizeChanged();
+
+}
+
+void SectionContainer::setIsCollapsedInternal(bool state)
+{
+	if (isCollapsible() == false)
+		return;
+
 	m_isCollapsed = state;
 
 	header->buttonCollapse->setIcon(m_isCollapsed ? iconCollapsed : iconExpanded);
@@ -130,8 +161,6 @@
 	body->setVisible(!m_isCollapsed);
 
 	resize(calculateSize());
-	emit collapsedStateChanged(m_isCollapsed);
-	emit sizeChanged();
 }
 
 void SectionContainer::collapse()
@@ -355,6 +384,36 @@
 					 this->height() - lineWidth);
 }
 
+#ifndef EXCLUDE_FOR_DESIGNER_PLUGIN
+void SectionContainer::savePreferences()
+{
+	if(!canSaveState())
+		return;
+
+	if(objectName().isEmpty())
+		return;
+
+	PrefsContext *prefCollapse = PrefsManager::instance().prefsFile->getContext(objectName());
+	prefCollapse->set("collapsed", m_isCollapsed);
+
+	PrefsManager::instance().prefsFile->write();
+}
+
+void SectionContainer::restorePreferences()
+{
+	if(!canSaveState())
+		return;
+
+	if(objectName().isEmpty())
+		return;
+
+	PrefsContext *prefCollapse = PrefsManager::instance().prefsFile->getContext(objectName());
+	bool isCollapsed = prefCollapse->getBool("collapsed", m_isCollapsed);
+
+	setIsCollapsedInternal(isCollapsed);
+}
+#endif
+
 /* *********************************************************************************
  * *
  *
Index: scribus/ui/widgets/section_container.h
===================================================================
--- scribus/ui/widgets/section_container.h	(Revision 26174)
+++ scribus/ui/widgets/section_container.h	(Arbeitskopie)
@@ -6,6 +6,10 @@
 #include <QVBoxLayout>
 #include <QWidget>
 
+#ifndef EXCLUDE_FOR_DESIGNER_PLUGIN
+class PrefsContext;
+#endif
+
 /* ********************************************************************************* *
  *
  * Section Container Header
@@ -61,7 +65,7 @@
 
 public:
 	SectionContainer(QWidget *parent = nullptr);
-	SectionContainer(QString title, bool isCollapsible = true, QWidget *parent = nullptr);
+	SectionContainer(QString title, QString objectName, bool isCollapsible = true, bool isExpanded = true, QWidget *parent = nullptr);
 
 	void setText(QString text);
 	QString text() const;
@@ -72,6 +76,9 @@
 	void setHasStyle(bool hasStyle);
 	bool hasStyle() const;
 
+	void setCanSaveState(bool saveState);
+	bool canSaveState();
+
 	void setIsCollapsible(bool isCollapsible);
 	bool isCollapsible() const;
 	bool isCollapsed() const;
@@ -103,6 +110,11 @@
 	void addHeaderPrefixSpacing(int size);
 	void insertHeaderPrefixSpacing(int index, int size);
 
+#ifndef EXCLUDE_FOR_DESIGNER_PLUGIN
+	void savePreferences();
+	void restorePreferences();
+#endif
+
 private:
 	SectionContainerHeader *header { nullptr };
 	QWidget* body {new QWidget()};
@@ -109,10 +121,11 @@
 	QVBoxLayout *mainLayout { nullptr };
 	QIcon iconCollapsed;
 	QIcon iconExpanded;
-	bool m_isCollapsible;
+	bool m_isCollapsible {true};
 	bool m_isCollapsed { false };
-	bool m_hasStyle { false };
+	bool m_hasStyle { true };
 	bool m_hasBody {false};
+	bool m_canSaveState {false};
 
 	bool eventFilter(QObject *object, QEvent *event) override;
 
@@ -122,6 +135,7 @@
 
 protected:
 	QSize calculateSize();
+	void setIsCollapsedInternal(bool state);
 
 public slots:
 	void toggleCollpasedState();
