Index: resources/iconsets/1_7_0/16/action-chevron-down-2.svg
===================================================================
Kann nicht anzeigen: Dateityp ist als binär angegeben.
svn:mime-type = image/svg+xml

Property changes on: resources/iconsets/1_7_0/16/action-chevron-down-2.svg
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-image/svg+xml
\ No newline at end of property
Index: resources/iconsets/1_7_0/32/page-3fold.svg
===================================================================
Kann nicht anzeigen: Dateityp ist als binär angegeben.
svn:mime-type = image/svg+xml

Property changes on: resources/iconsets/1_7_0/32/page-3fold.svg
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-image/svg+xml
\ No newline at end of property
Index: resources/iconsets/1_7_0/32/page-4fold.svg
===================================================================
Kann nicht anzeigen: Dateityp ist als binär angegeben.
svn:mime-type = image/svg+xml

Property changes on: resources/iconsets/1_7_0/32/page-4fold.svg
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-image/svg+xml
\ No newline at end of property
Index: resources/iconsets/1_7_0/32/page-double.svg
===================================================================
Kann nicht anzeigen: Dateityp ist als binär angegeben.
svn:mime-type = image/svg+xml

Property changes on: resources/iconsets/1_7_0/32/page-double.svg
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-image/svg+xml
\ No newline at end of property
Index: resources/iconsets/1_7_0/32/page-simple.svg
===================================================================
Kann nicht anzeigen: Dateityp ist als binär angegeben.
svn:mime-type = image/svg+xml

Property changes on: resources/iconsets/1_7_0/32/page-simple.svg
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-image/svg+xml
\ No newline at end of property
Index: resources/iconsets/1_7_0/scribus_splash_dark.png
===================================================================
Kann nicht anzeigen: Dateityp ist als binär angegeben.
svn:mime-type = image/png

Property changes on: resources/iconsets/1_7_0/scribus_splash_dark.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-image/png
\ No newline at end of property
Index: resources/iconsets/1_7_0/scribus_splash_light.png
===================================================================
Kann nicht anzeigen: Dateityp ist als binär angegeben.
svn:mime-type = image/png

Property changes on: resources/iconsets/1_7_0/scribus_splash_light.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-image/png
\ No newline at end of property
Index: scribus/ui/colorpicker/colorpicker_color.cpp
===================================================================
--- scribus/ui/colorpicker/colorpicker_color.cpp	(Revision 26349)
+++ scribus/ui/colorpicker/colorpicker_color.cpp	(Arbeitskopie)
@@ -132,7 +132,7 @@
 	QString shade = sh < 100 ? QString( tr("<br> Shade: %1 %")).arg(sh) : "";
 	QString opacity = op < 100 ? QString( tr("<br> Opacity: %1 %")).arg(op) : "";
 
-	if (!m_color.Name.isEmpty())
+	if (!m_color.Name.isEmpty() && m_doc)
 	{
 		QString colorValues;
 
Index: scribus/ui/propertiespalette_text.cpp
===================================================================
--- scribus/ui/propertiespalette_text.cpp	(Revision 26349)
+++ scribus/ui/propertiespalette_text.cpp	(Arbeitskopie)
@@ -110,8 +110,8 @@
 	lyt->addWidget(scStyles);
 	lyt->addWidget(scText);
 	lyt->addWidget(scAlignment);
+	lyt->addWidget(scAdvanced);
 	lyt->addWidget(scDistance);
-	lyt->addWidget(scAdvanced);	
 	lyt->addWidget(scParEffect);
 	lyt->addWidget(scHyphenation);
 	lyt->addWidget(scOrphans);
Index: scribus/ui/smcstylewidget.cpp
===================================================================
--- scribus/ui/smcstylewidget.cpp	(Revision 26349)
+++ scribus/ui/smcstylewidget.cpp	(Arbeitskopie)
@@ -23,42 +23,30 @@
 {
 	setupUi(this);
 
-	iconSetChange();
+	textColor->colorButton->setContext(Context::Text);
+	textColor->colorButton->setIconSize(QSize(20, 20));
+	textColor->colorButton->setApplyColorOnIcon(true);
+	textColor->setColor(CommonStrings::tr_NoneColor);
+	textColor->setText(tr("Color"));
 
-	// fillColor_->setPixmapType(ColorCombo::fancyPixmaps);
-	// fillColor_->clear();
-	// fillColor_->addItem(CommonStrings::tr_NoneColor);
+	backgroundColor->colorButton->setContext(Context::TextBackground);
+	backgroundColor->setColor(CommonStrings::tr_NoneColor);
+	backgroundColor->setText(tr("Background"));
 
-	// strokeColor_->setPixmapType(ColorCombo::fancyPixmaps);
-	// strokeColor_->clear();
-	// strokeColor_->addItem(CommonStrings::tr_NoneColor);
+	strokeColor->colorButton->setContext(Context::TextOutline);
+	strokeColor->colorButton->setIconSize(QSize(20, 20));
+	strokeColor->setColor(CommonStrings::tr_NoneColor);
+	strokeColor->setText(tr("Stroke"));
+	strokeColor->setEnabled(false);
 
-	// backColor_->setPixmapType(ColorCombo::fancyPixmaps);
-	// backColor_->clear();
-	// backColor_->addItem(CommonStrings::tr_NoneColor);
-
-	textColor->colorButton->setContext(Context::Text);
-	textColor->setColor(CommonStrings::tr_NoneColor);
-	textColor->setText(tr("Color"));
-
-	backgroundColor->colorButton->setContext(Context::TextBackground);
-	backgroundColor->setColor(CommonStrings::tr_NoneColor);
-	backgroundColor->setText(tr("Background"));
-
-	strokeColor->colorButton->setContext(Context::TextOutline);
-	strokeColor->setColor(CommonStrings::tr_NoneColor);
-	strokeColor->setText(tr("Stroke"));
-	strokeColor->setEnabled(false);
-
-	// StrokeIcon->setEnabled(false);
-	// strokeShade_->setEnabled(false);
-	// strokeColor_->setEnabled(false);
 	fontfeaturesSetting->resetFontFeatures();
 
 	hyphenCharLineEdit->setMaxLength(1);
 
-	fontFace_->setGuestWidget(fontSizeLabel_);
-
+	fontFace_->setGuestWidget(fontSizeLabel_);
+
+	iconSetChange();
+
 	connect(ScQApp, SIGNAL(iconSetChanged()), this, SLOT(iconSetChange()));
 
 	connect(effects_, SIGNAL(State(int)), this, SLOT(slotColorChange()));
@@ -79,21 +67,17 @@
 {
 	IconManager& im = IconManager::instance();
 
-	fontSizeLabel_->setPixmap(im.loadPixmap("font-size"));
-	trackingLabel_->setPixmap(im.loadPixmap("character-letter-tracking"));
-	widthSpaceLabel->setPixmap(im.loadPixmap("character-space-width"));
-	baselineOffsetLabel_->setPixmap(im.loadPixmap("character-offset-baseline"));
-	hscaleLabel_->setPixmap(im.loadPixmap("character-scale-width"));
-	vscaleLabel_->setPixmap(im.loadPixmap("character-scale-height"));
-	// FillIcon->setPixmap(im.loadPixmap("16/color-fill.png"));
-	// fillShadeLabel->setPixmap(im.loadPixmap("shade.png"));
-	// StrokeIcon->setPixmap(im.loadPixmap("16/color-stroke.png"));
-	// strokeShadeLabel->setPixmap(im.loadPixmap("shade.png"));
-	// backIcon->setPixmap(im.loadPixmap("16/color-fill.png"));
-	// backShadeLabel->setPixmap(im.loadPixmap("shade.png"));
-	languageLabel_->setPixmap(im.loadPixmap("paragraph-language"));
-	hyphenationCharacterLabel->setPixmap(im.loadPixmap("hyphen-character"));
-	smallestWordLabel->setPixmap(im.loadPixmap("hyphen-smallest-word"));
+	fontSizeLabel_->setPixmap(im.loadPixmap("font-size"));
+	trackingLabel_->setPixmap(im.loadPixmap("character-letter-tracking"));
+	widthSpaceLabel->setPixmap(im.loadPixmap("character-space-width"));
+	baselineOffsetLabel_->setPixmap(im.loadPixmap("character-offset-baseline"));
+	hscaleLabel_->setPixmap(im.loadPixmap("character-scale-width"));
+	vscaleLabel_->setPixmap(im.loadPixmap("character-scale-height"));
+	languageLabel_->setPixmap(im.loadPixmap("paragraph-language"));
+	hyphenationCharacterLabel->setPixmap(im.loadPixmap("hyphen-character"));
+	smallestWordLabel->setPixmap(im.loadPixmap("hyphen-smallest-word"));
+	textColor->colorButton->setIcon(im.loadIcon("text-color", textColor->colorButton->iconSize()));
+	strokeColor->colorButton->setIcon(im.loadIcon("text-outline-color", strokeColor->colorButton->iconSize()));
 }
 
 void SMCStyleWidget::languageChange()
@@ -102,27 +86,6 @@
 	LanguageManager::instance()->fillInstalledStringList(&languageList);
 	fillLangComboFromList(languageList);
 
-	// if (fillColor_->count() > 0)
-	// {
-	// 	bool sigBlocked = fillColor_->blockSignals(true);
-	// 	fillColor_->setItemText(0, CommonStrings::tr_NoneColor);
-	// 	fillColor_->blockSignals(sigBlocked);
-	// }
-
-	// if (strokeColor_->count() > 0)
-	// {
-	// 	bool sigBlocked = strokeColor_->blockSignals(true);
-	// 	strokeColor_->setItemText(0, CommonStrings::tr_NoneColor);
-	// 	strokeColor_->blockSignals(sigBlocked);
-	// }
-
-	// if (backColor_->count() > 0)
-	// {
-	// 	bool sigBlocked = backColor_->blockSignals(true);
-	// 	backColor_->setItemText(0, CommonStrings::tr_NoneColor);
-	// 	backColor_->blockSignals(sigBlocked);
-	// }
-
 	retranslateUi(this);
 
 	fontSizeLabel_->setToolTip(fontSize_->toolTip());
@@ -131,22 +94,16 @@
 	baselineOffsetLabel_->setToolTip(baselineOffset_->toolTip());
 	hscaleLabel_->setToolTip(fontHScale_->toolTip());
 	vscaleLabel_->setToolTip(fontVScale_->toolTip());
-	// FillIcon->setToolTip(fillColor_->toolTip());
-	// fillShadeLabel->setToolTip(fillShade_->toolTip());
-	// StrokeIcon->setToolTip(strokeColor_->toolTip());
-	// strokeShadeLabel->setToolTip(strokeShade_->toolTip());
-	// backIcon->setToolTip(backColor_->toolTip());
-	// backShadeLabel->setToolTip(backShade_->toolTip());
 
-	textColor->colorButton->setPersistentToolTip( tr("Text color of selected text"));
-	textColor->setText(tr("Color"));
-
-	backgroundColor->colorButton->setPersistentToolTip( tr("Background color of selected text"));
-	backgroundColor->setText(tr("Background"));
-
-	strokeColor->colorButton->setPersistentToolTip( tr("Stroke color of selected text"));
-	strokeColor->setText(tr("Stroke"));
-
+	textColor->colorButton->setPersistentToolTip( tr("Text color of selected text"));
+	textColor->setText(tr("Color"));
+
+	backgroundColor->colorButton->setPersistentToolTip( tr("Background color of selected text"));
+	backgroundColor->setText(tr("Background"));
+
+	strokeColor->colorButton->setPersistentToolTip( tr("Stroke color of selected text"));
+	strokeColor->setText(tr("Stroke"));
+
 // 	fontVScale_->setSuffix( tr(" %"));
 // 	fontHScale_->setSuffix( tr(" %"));
 // 	baselineOffset_->setSuffix( tr(" %"));
@@ -186,23 +143,11 @@
 		tmpView->setMinimumWidth(tmpWidth + 24);
 }
 
-// void SMCStyleWidget::fillColorCombo(ColorList &colors)
-// {
-// 	fillColor_->clear();
-// 	strokeColor_->clear();
-// 	backColor_->clear();
-
-// 	fillColor_->setColors(colors, true);
-// 	strokeColor_->setColors(colors, true);
-// 	backColor_->setColors(colors, true);
-// }
-
 void SMCStyleWidget::handleUpdateRequest(int updateFlags)
 {
 	if (!m_Doc)
 		return;
-	// if (updateFlags & reqColorsUpdate)
-	// 	fillColorCombo(m_Doc->PageColors);
+
 }
 
 void SMCStyleWidget::slotEnableFontFeatures(const QString& s)
@@ -223,13 +168,12 @@
 	QStringList languageList;
 	LanguageManager::instance()->fillInstalledStringList(&languageList);
 	fillLangComboFromList(languageList);
-//	fillColorCombo(m_Doc->PageColors);
 	fontFace_->rebuildList(m_Doc);
 
-	textColor->colorButton->setDoc(m_Doc);
-	backgroundColor->colorButton->setDoc(m_Doc);
-	strokeColor->colorButton->setDoc(m_Doc);
-
+	textColor->colorButton->setDoc(m_Doc);
+	backgroundColor->colorButton->setDoc(m_Doc);
+	strokeColor->colorButton->setDoc(m_Doc);
+
 	connect(m_Doc->scMW(), SIGNAL(UpdateRequest(int)), this , SLOT(handleUpdateRequest(int)));
 }
 
@@ -262,28 +206,10 @@
 		effects_->setStyle(static_cast<int>(cstyle->effects()), cstyle->isInhFeatures());
 		effects_->setParentItem(static_cast<int>(parent->effects())); // FIXME
 
-		// fillShade_->setValue(qRound(cstyle->fillShade()), cstyle->isInhFillShade());
-		// fillShade_->setParentValue(qRound(parent->fillShade()));
+		textColor->setColor(cstyle->fillColor(), qRound(cstyle->fillShade()), parent->fillColor(), qRound(cstyle->fillShade()), cstyle->isInhFillColor());
+		backgroundColor->setColor(cstyle->backColor(), qRound(cstyle->backShade()), parent->backColor(), qRound(cstyle->backShade()), cstyle->isInhBackColor());
+		strokeColor->setColor(cstyle->strokeColor(), qRound(cstyle->strokeShade()), parent->strokeColor(), qRound(cstyle->strokeShade()), cstyle->isInhStrokeColor());
 
-		// strokeShade_->setValue(qRound(cstyle->strokeShade()), cstyle->isInhStrokeShade());
-		// strokeShade_->setParentValue(qRound(parent->strokeShade()));
-
-		// fillColor_->setCurrentText(cstyle->fillColor(), cstyle->isInhFillColor());
-		// fillColor_->setParentText(parent->fillColor());
-
-		// strokeColor_->setCurrentText(cstyle->strokeColor(), cstyle->isInhStrokeColor());
-		// strokeColor_->setParentText(parent->strokeColor());
-
-		// backColor_->setCurrentText(cstyle->backColor(), cstyle->isInhBackColor());
-		// backColor_->setParentText(parent->backColor());
-
-		// backShade_->setValue(qRound(cstyle->backShade()), cstyle->isInhBackShade());
-		// backShade_->setParentValue(qRound(parent->backShade()));
-
-		textColor->setColor(cstyle->fillColor(), qRound(cstyle->fillShade()), parent->fillColor(), qRound(cstyle->fillShade()), cstyle->isInhFillColor());
-		backgroundColor->setColor(cstyle->backColor(), qRound(cstyle->backShade()), parent->backColor(), qRound(cstyle->backShade()), cstyle->isInhBackColor());
-		strokeColor->setColor(cstyle->strokeColor(), qRound(cstyle->strokeShade()), parent->strokeColor(), qRound(cstyle->strokeShade()), cstyle->isInhStrokeColor());
-
 		fontFace_->setCurrentFont(cstyle->font().scName(), cstyle->isInhFont());
 		fontFace_->setParentFont(parent->font().scName());
 
@@ -314,17 +240,11 @@
 		tracking_->setValue(cstyle->tracking() / 10.0);
 		widthSpaceSpin->setValue(cstyle->wordTracking() * 100.0);
 		effects_->setStyle(static_cast<int>(cstyle->effects()));
-		// fillShade_->setValue(qRound(cstyle->fillShade()));
-		// strokeShade_->setValue(qRound(cstyle->strokeShade()));
-		// fillColor_->setCurrentText(cstyle->fillColor());
-		// strokeColor_->setCurrentText(cstyle->strokeColor());
-		// backColor_->setCurrentText(cstyle->backColor());
-		// backShade_->setValue(qRound(cstyle->backShade()));
-
-		textColor->setColor(cstyle->fillColor(), qRound(cstyle->fillShade()));
-		backgroundColor->setColor(cstyle->backColor(), qRound(cstyle->backShade()));
-		strokeColor->setColor(cstyle->strokeColor(), qRound(cstyle->strokeShade()));
-
+
+		textColor->setColor(cstyle->fillColor(), qRound(cstyle->fillShade()));
+		backgroundColor->setColor(cstyle->backColor(), qRound(cstyle->backShade()));
+		strokeColor->setColor(cstyle->strokeColor(), qRound(cstyle->strokeShade()));
+
 		fontFace_->setCurrentFont(cstyle->font().scName());
 		fontfeaturesSetting->setFontFeatures(cstyle->fontFeatures(), cstyle->font().fontFeatures());
 		smallestWordSpinBox->setValue(cstyle->hyphenWordMin());
@@ -550,9 +470,7 @@
 
 void SMCStyleWidget::showColors(const QList<CharStyle*> &cstyles)
 {
-	// strokeShade_->setEnabled(true);
-	// strokeColor_->setEnabled(true);
-	strokeColor->setEnabled(true);
+	strokeColor->setEnabled(true);
 
 	double d = -30000;
 	for (int i = 0; i < cstyles.count(); ++i)
@@ -564,90 +482,56 @@
 		}
 		d = cstyles[i]->fillShade();
 	}
-	// if (d == -30000)
-	// 	fillShade_->setText( tr("Shade"));
-	// else
-	// 	fillShade_->setValue(qRound(d));
 
-	QString s;
+	QString s;
 	for (int i = 0; i < cstyles.count(); ++i)
 	{
-		if (!s.isEmpty() && s != cstyles[i]->fillColor())
+		if (!s.isEmpty() && s != cstyles[i]->fillColor())
 		{
-			s.clear();
+			s.clear();
 			break;
 		}
-		s = cstyles[i]->fillColor();
+		s = cstyles[i]->fillColor();
 	}
-	// if (s.isEmpty())
-	// {
-	// 	if (fillColor_->itemText(fillColor_->count() - 1) != "")
-	// 		fillColor_->addItem("");
-	// 	fillColor_->setCurrentIndex(fillColor_->count() - 1);
-	// }
-	// else
-	// 	fillColor_->setCurrentText(s);
 
-	textColor->setColor(s, qRound(d));
-
-	// Stroke
+	textColor->setColor(s, qRound(d));
+
+	// Stroke
 	d = -30000;
 	for (int i = 0; i < cstyles.count(); ++i)
 	{
-		if (d != -30000 && cstyles[i]->strokeShade() != d)
+		if (d != -30000 && cstyles[i]->strokeShade() != d)
 		{
 			d = -30000;
 			break;
 		}
-		d = cstyles[i]->strokeShade();
+		d = cstyles[i]->strokeShade();
 	}
-	// if (d == -30000)
-	// {
-	// 	strokeShade_->setValue(21);
-	// 	strokeShade_->setText( tr("Shade"));
-	// }
-	// else
-	// 	strokeShade_->setValue(qRound(d));
 
-	s.clear();
+	s.clear();
 	for (int i = 0; i < cstyles.count(); ++i)
 	{
-		if (!s.isEmpty() && s != cstyles[i]->strokeColor())
+		if (!s.isEmpty() && s != cstyles[i]->strokeColor())
 		{
 			s.clear();
 			break;
 		}
-		s = cstyles[i]->strokeColor();
+		s = cstyles[i]->strokeColor();
 	}
-	// if (s.isEmpty())
-	// {
-	// 	if (strokeColor_->itemText(strokeColor_->count() - 1) != "")
-	// 		strokeColor_->addItem("");
-	// 	strokeColor_->setCurrentIndex(strokeColor_->count() - 1);
-	// }
-	// else
-	// 	strokeColor_->setCurrentText(s);
 
-	strokeColor->setColor(s, qRound(d));
-
-	// Background
-	d = -30000;
+	strokeColor->setColor(s, qRound(d));
+
+	// Background
+	d = -30000;
 	for (int i = 0; i < cstyles.count(); ++i)
 	{
-		if (d != -30000 && cstyles[i]->backShade() != d)
+		if (d != -30000 && cstyles[i]->backShade() != d)
 		{
-			d = -30000;
+			d = -30000;
 			break;
 		}
-		d = cstyles[i]->backShade();
+		d = cstyles[i]->backShade();
 	}
-	// if (d == -30000)
-	// {
-	// 	backShade_->setValue(21);
-	// 	backShade_->setText( tr("Shade"));
-	// }
-	// else
-	// 	backShade_->setValue(qRound(d));
 
 	s.clear();
 	for (int i = 0; i < cstyles.count(); ++i)
@@ -659,17 +543,9 @@
 		}
 		s = cstyles[i]->backColor();
 	}
-	// if (s.isEmpty())
-	// {
-	// 	if (backColor_->itemText(backColor_->count() - 1) != "")
-	// 		backColor_->addItem("");
-	// 	backColor_->setCurrentIndex(backColor_->count() - 1);
-	// }
-	// else
-	// 	backColor_->setCurrentText(s);
-
-	backgroundColor->setColor(s, qRound(d));
-
+
+	backgroundColor->setColor(s, qRound(d));
+
 }
 
 void SMCStyleWidget::showLanguage(const QList<CharStyle*> &cstyles, const QString& /*defLang*/)
@@ -764,9 +640,6 @@
 {
 	int s = effects_->getStyle();
 	bool enabled= (s & 4) || (s & 256);
-	// StrokeIcon->setEnabled(enabled);
-	// strokeShade_->setEnabled(enabled);
-	// strokeColor_->setEnabled(enabled);
-
-	strokeColor->setEnabled(enabled);
+
+	strokeColor->setEnabled(enabled);
 }
Index: scribus/ui/smcstylewidget.h
===================================================================
--- scribus/ui/smcstylewidget.h	(Revision 26349)
+++ scribus/ui/smcstylewidget.h	(Arbeitskopie)
@@ -27,7 +27,6 @@
 	void show(const QList<CharStyle*> &cstyles, const QList<CharStyle> &cstylesAll, const QString &defLang, int unitIndex);
 	//void fillLangCombo(QMap<QString,QString> langMap);
 	void fillLangComboFromList(const QStringList& langList);
-//	void fillColorCombo(ColorList &colors);
 	void languageChange();
 	void clearAll();
 
Index: scribus/ui/smopticalmarginswidget.cpp
===================================================================
--- scribus/ui/smopticalmarginswidget.cpp	(Revision 26349)
+++ scribus/ui/smopticalmarginswidget.cpp	(Arbeitskopie)
@@ -9,7 +9,6 @@
 {
 	parentButton->setText( "");
 	parentButton->setToolTip( tr("Use parent style's optical margins instead of overriding it"));
-	parentButton->setCheckable(false);
 
 	resize(minimumSizeHint());
 	iconSetChange();
Index: scribus/ui/smpstylewidget.cpp
===================================================================
--- scribus/ui/smpstylewidget.cpp	(Revision 26349)
+++ scribus/ui/smpstylewidget.cpp	(Arbeitskopie)
@@ -37,13 +37,13 @@
 
 	iconSetChange();
 
-	backgroundColor->colorButton->setContext(Context::TextBackground);
-	backgroundColor->setColor(CommonStrings::tr_NoneColor);
-	backgroundColor->setText(tr("Background"));
-
-	lineSpacingMode->addItem( tr("Fixed"));
-	lineSpacingMode->addItem( tr("Automatic"));
-	lineSpacingMode->addItem( tr("Baseline"));
+	backgroundColor->colorButton->setContext(Context::TextBackground);
+	backgroundColor->setColor(CommonStrings::tr_NoneColor);
+	backgroundColor->setText(tr("Background"));
+
+	lineSpacingMode->addItem( tr("Fixed"));
+	lineSpacingMode->addItem( tr("Automatic"));
+	lineSpacingMode->addItem( tr("Baseline"));
 	connect(lineSpacingMode, SIGNAL(highlighted(int)), this, SLOT(slotLineSpacingModeChanged(int)));
 
 	lineSpacing->setSuffix(unitGetSuffixFromIndex(0));
@@ -65,14 +65,18 @@
 	numStartSpin->setMaximum(9999);
 	numLevelSpin->setMinimum(1);
 	numLevelSpin->setMaximum(1);
-	numPrefix->setMaxLength(5);
-	numPrefix->setMaximumWidth(QFontMetrics(numPrefix->font()).averageCharWidth() * 7);
-	numSuffix->setMaxLength(5);
-	numSuffix->setMaximumWidth(QFontMetrics(numSuffix->font()).averageCharWidth() * 7);
+	numPrefix->setMaxLength(5);
+	numPrefix->setMaximumWidth(QFontMetrics(numPrefix->font()).averageCharWidth() * 7);
+	numSuffix->setMaxLength(5);
+	numSuffix->setMaximumWidth(QFontMetrics(numSuffix->font()).averageCharWidth() * 7);
 	fillNumRestartCombo();
 	dropCapLines->setMinimum(2);
 	dropCapLines->setMaximum(99);
 
+	fillPECombo();
+	connect(peCombo, SIGNAL(currentIndexChanged(int)), this, SLOT(handleParEffectUse(int)));
+	connect(parentParEffectsButton, SIGNAL(clicked()), this, SLOT(slotParentParEffects()));
+
 	minSpaceSpin->setSuffix(unitGetSuffixFromIndex(SC_PERCENT));
 	minGlyphExtSpin->setSuffix(unitGetSuffixFromIndex(SC_PERCENT));
 	maxGlyphExtSpin->setSuffix(unitGetSuffixFromIndex(SC_PERCENT));
@@ -103,19 +107,21 @@
 {
 	IconManager& iconManager = IconManager::instance();
 
-	lineSpacingLabel->setPixmap(iconManager.loadPixmap("paragraph-line-height"));
-	spaceAboveLabel->setPixmap(iconManager.loadPixmap("paragraph-space-above") );
-	spaceBelowLabel->setPixmap(iconManager.loadPixmap("paragraph-space-below") );
-	keepLabelStart->setPixmap(iconManager.loadPixmap("paragraph-orphan") );
-	keepLabelEnd->setPixmap(iconManager.loadPixmap("paragraph-widow") );
-	minSpaceLabel->setPixmap(iconManager.loadPixmap("character-space-width-min"));
-	minGlyphExtLabel->setPixmap(iconManager.loadPixmap("character-scale-width-min"));
-	maxGlyphExtLabel->setPixmap(iconManager.loadPixmap("character-scale-width-max"));
-	consecutiveHyphenLabel->setPixmap(iconManager.loadPixmap("hyphen-consecutive"));
+	lineSpacingLabel->setPixmap(iconManager.loadPixmap("paragraph-line-height"));
+	spaceAboveLabel->setPixmap(iconManager.loadPixmap("paragraph-space-above") );
+	spaceBelowLabel->setPixmap(iconManager.loadPixmap("paragraph-space-below") );
+	keepLabelStart->setPixmap(iconManager.loadPixmap("paragraph-orphan") );
+	keepLabelEnd->setPixmap(iconManager.loadPixmap("paragraph-widow") );
+	minSpaceLabel->setPixmap(iconManager.loadPixmap("character-space-width-min"));
+	minGlyphExtLabel->setPixmap(iconManager.loadPixmap("character-scale-width-min"));
+	maxGlyphExtLabel->setPixmap(iconManager.loadPixmap("character-scale-width-max"));
+	consecutiveHyphenLabel->setPixmap(iconManager.loadPixmap("hyphen-consecutive"));
 
-	bulletCharTableButton->setIcon(IconManager::instance().loadPixmap("22/insert-table.png"));
-	distFromTextLabel->setPixmap(iconManager.loadPixmap("paragraph-list-offset"));
-	parEffectCharStyleComboLabel->setPixmap(iconManager.loadPixmap("character-style"));
+	bulletCharTableButton->setIcon(iconManager.loadIcon("22/insert-table.png"));
+	distFromTextLabel->setPixmap(iconManager.loadPixmap("paragraph-list-offset"));
+	parEffectCharStyleComboLabel->setPixmap(iconManager.loadPixmap("character-style"));
+	peLabel->setPixmap(iconManager.loadPixmap("paragraph-effects-style"));
+	parentParEffectsButton->setIcon(iconManager.loadIcon("reset-style-changes"));
 }
 
 void SMPStyleWidget::languageChange()
@@ -129,9 +135,9 @@
 	int  oldLineSpacingModeIndex = lineSpacingMode->currentIndex();
 	bool lineSpacingModeBlocked = lineSpacingMode->blockSignals(true);
 	lineSpacingMode->clear();
-	lineSpacingMode->addItem( tr("Fixed"));
-	lineSpacingMode->addItem( tr("Automatic"));
-	lineSpacingMode->addItem( tr("Baseline"));
+	lineSpacingMode->addItem( tr("Fixed"));
+	lineSpacingMode->addItem( tr("Automatic"));
+	lineSpacingMode->addItem( tr("Baseline"));
 	lineSpacingMode->setCurrentIndex(oldLineSpacingModeIndex);
 	lineSpacingMode->blockSignals(lineSpacingModeBlocked);
 
@@ -148,6 +154,8 @@
 	numRestartCombo->setCurrentIndex(oldNumRestartIndex);
 	numRestartCombo->blockSignals(numRestartComboBlocked);
 
+	fillPECombo();
+
 /* #13455 stop making the font 2ce as big
 	QFont font1;
 	if (font1.pointSize())
@@ -158,8 +166,8 @@
 	(bulletStrEdit->lineEdit())->setFont(font1);
 */
 
-	backgroundColor->colorButton->setPersistentToolTip( tr("Background color of selected text"));
-	backgroundColor->setText(tr("Background"));
+	backgroundColor->colorButton->setPersistentToolTip( tr("Background color of selected text"));
+	backgroundColor->setText(tr("Background"));
 }
 
 void SMPStyleWidget::unitChange(double oldRatio, double newRatio, int unitIndex)
@@ -181,54 +189,9 @@
 	}
 
 	cpage->setDoc(m_Doc);
-	backgroundColor->colorButton->setDoc(m_Doc);
+	backgroundColor->colorButton->setDoc(m_Doc);
 }
 
-void SMPStyleWidget::fillBulletStrEditCombo()
-{
-	bulletStrEdit->clear();
-	bulletStrEdit->addItem(QChar(0x2022));
-	bulletStrEdit->addItem("*");
-	bulletStrEdit->addItem(QChar(0x2013));
-	bulletStrEdit->setMinimumWidth(50);
-	if (bulletStrEdit->currentText().isEmpty())
-		bulletStrEdit->setEditText(QChar(0x2022));
-}
-
-void SMPStyleWidget::fillNumerationsCombo()
-{
-	QStringList numNames;
-	const auto numerationKeys = m_Doc->numerations.keys();
-	for (const QString& numName : numerationKeys)
-	{
-		if (numName.isEmpty())
-			continue;
-		numNames.append(numName);
-	}
-	numNames.sort();
-	numComboBox->clear();
-	numComboBox->insertItems(0, numNames);
-	numComboBox->setCurrentItem(0);
-}
-
-void SMPStyleWidget::fillNumRestartCombo()
-{
-	numRestartCombo->clear();
-	numRestartCombo->addItem(tr("Document"), static_cast<int>(NSRdocument));
-	numRestartCombo->addItem(tr("Story") , static_cast<int>(NSRstory));
-}
-
-void SMPStyleWidget::checkParEffectState()
-{
-	bool enable = false;
-	if (dropCapsBox->isChecked() || bulletBox->isChecked() || numBox->isChecked())
-		enable = true;
-
-	parEffectCharStyleCombo->setEnabled(enable);
-	parEffectOffset->setEnabled(enable);
-	parEffectIndentBox->setEnabled(enable);
-}
-
 void SMPStyleWidget::show(ParagraphStyle *pstyle, QList<ParagraphStyle> &pstyles, QList<CharStyle> &cstyles, int unitIndex, const QString &defLang)
 {
 	m_currPStyle = pstyle;
@@ -238,9 +201,9 @@
 	m_hasParent = pstyle->hasParent() && parent != nullptr && parent->hasName() && pstyle->parent() != "";
 
 	lineSpacingMode->clear();
-	lineSpacingMode->addItem( tr("Fixed"));
-	lineSpacingMode->addItem( tr("Automatic"));
-	lineSpacingMode->addItem( tr("Baseline"));
+	lineSpacingMode->addItem( tr("Fixed"));
+	lineSpacingMode->addItem( tr("Automatic"));
+	lineSpacingMode->addItem( tr("Baseline"));
 	
 //	optMarginCombo->clear();
 //	optMarginCombo->addItem(tr("None"), ParagraphStyle::OM_None);
@@ -268,7 +231,7 @@
 		
 //		optMarginCombo->setCurrentItemByData( pstyle->opticalMargins(),  pstyle->isInhOpticalMargins() );
 //		optMarginCombo->setParentItem(optMarginCombo->getItemIndexForData( parent->opticalMargins()));
-		optMarginWidget->setOpticalMargins(pstyle->opticalMargins(), parent->opticalMargins(), pstyle->isInhOpticalMargins());
+		optMarginWidget->setOpticalMargins(pstyle->opticalMargins(), parent->opticalMargins(), pstyle->isInhOpticalMargins());
 		
 		minSpaceSpin->setValue(pstyle->minWordTracking() * 100.0,  pstyle->isInhMinWordTracking());
 		minSpaceSpin->setParentValue(parent->minWordTracking());
@@ -336,28 +299,18 @@
 		else
 		{
 			parentParEffectsButton->show();
-			QFont f(font());
-			f.setBold(true);
-			parentParEffectsButton->setFont(f);
 		}
 		connect(parentParEffectsButton, SIGNAL(clicked()), this, SLOT(slotParentParEffects()));
 
-		dropCapsBox->setChecked(pstyle->hasDropCap());
-		setWidgetBoldFont(dropCapsBox, !pstyle->isInhHasDropCap());
-		dropCapLines->setValue(pstyle->dropCapLines(), pstyle->isInhDropCapLines());
-		dropCapLines->setParentValue(parent->dropCapLines());
-
 		parEffectOffset->setValue(pstyle->parEffectOffset() * unitRatio, pstyle->isInhParEffectOffset());
 		parEffectOffset->setParentValue(parent->parEffectOffset() * unitRatio);
 		parEffectIndentBox->setChecked(pstyle->parEffectIndent(),pstyle->isInhParEffectIndent());
 		parEffectIndentBox->setParentValue(parent->parEffectIndent());
-
-		bulletBox->setChecked(pstyle->hasBullet());
-		setWidgetBoldFont(bulletBox, !pstyle->isInhHasBullet());
+		dropCapLines->setValue(pstyle->dropCapLines(), pstyle->isInhDropCapLines());
+		dropCapLines->setParentValue(parent->dropCapLines());
 		bulletStrEdit->setEditText(pstyle->bulletStr());
 		setWidgetBoldFont(bulletCharLabel, !pstyle->isInhBulletStr());
-		numBox->setChecked(pstyle->hasNum());
-		setWidgetBoldFont(numBox, !pstyle->isInhHasNum());
+
 		QString numName = pstyle->numName();
 		if (numName.isEmpty())
 			numName = "default";
@@ -388,7 +341,7 @@
 		numRestartOtherBox->setParentValue(parent->numOther());
 		numRestartHigherBox->setChecked(pstyle->numHigher(), pstyle->isInhNumHigher());
 		numRestartHigherBox->setParentValue(parent->numHigher());
-		backgroundColor->setColor(pstyle->backgroundColor(), qRound(pstyle->backgroundShade()), parent->backgroundColor(), qRound(pstyle->backgroundShade()), pstyle->isInhBackgroundColor());
+		backgroundColor->setColor(pstyle->backgroundColor(), qRound(pstyle->backgroundShade()), parent->backgroundColor(), qRound(pstyle->backgroundShade()), pstyle->isInhBackgroundColor());
 	}
 	else
 	{
@@ -397,7 +350,7 @@
 		spaceAbove->setValue(pstyle->gapBefore());
 		spaceBelow->setValue(pstyle->gapAfter());
 //		optMarginCombo->setCurrentItemByData( pstyle->opticalMargins() );
-		optMarginWidget->setOpticalMargins(pstyle->opticalMargins());
+		optMarginWidget->setOpticalMargins(pstyle->opticalMargins());
 		minSpaceSpin->setValue(pstyle->minWordTracking() * 100.0);
 		minGlyphExtSpin->setValue(pstyle->minGlyphExtension() * 100.0);
 		maxGlyphExtSpin->setValue(pstyle->maxGlyphExtension() * 100.0);
@@ -406,15 +359,10 @@
 		parEffectIndentBox->setChecked(pstyle->parEffectIndent());
 		parentParEffectsButton->hide();
 		disconnect(parentParEffectsButton, SIGNAL(clicked()), this, SLOT(slotParentParEffects()));
-		dropCapsBox->setChecked(pstyle->hasDropCap());
-		setWidgetBoldFont(dropCapsBox, false);
+
 		dropCapLines->setValue(pstyle->dropCapLines());
-		bulletBox->setChecked(pstyle->hasBullet());
-		setWidgetBoldFont(bulletBox, false);
 		bulletStrEdit->setEditText(pstyle->bulletStr());
 		setWidgetBoldFont(bulletCharLabel, false);
-		numBox->setChecked(pstyle->hasNum());
-		setWidgetBoldFont(numBox, false);
 		QString numName = pstyle->numName();
 		if (numName.isEmpty())
 			numName = "default";
@@ -449,14 +397,21 @@
 		keepLinesEnd->setValue (pstyle->keepLinesEnd());
 		keepTogether->setChecked (pstyle->keepTogether());
 		keepWithNext->setChecked (pstyle->keepWithNext());
-		backgroundColor->setColor(pstyle->backgroundColor(), qRound(pstyle->backgroundShade()));
-
+		backgroundColor->setColor(pstyle->backgroundColor(), qRound(pstyle->backgroundShade()));
+
 	}
 
 	lineSpacing->setEnabled(pstyle->lineSpacingMode() == ParagraphStyle::FixedLineSpacing);
-	dropCapLines->setEnabled(pstyle->hasDropCap());
 
-	checkParEffectState();
+	if (pstyle->hasDropCap())
+		setParagraphEffect(1);
+	else if (pstyle->hasBullet())
+		setParagraphEffect(2);
+	else if (pstyle->hasNum())
+		setParagraphEffect(3);
+	else
+		setParagraphEffect(0);
+
 	parEffectCharStyleCombo->clear();
 	parEffectCharStyleCombo->addItem(tr("No Style"));
 	for (int i =0; i < cstyles.count(); i++)
@@ -490,9 +445,6 @@
 		parentCombo->setCurrentIndex(index);
 	}
 
-	connect(dropCapsBox, SIGNAL(toggled(bool)), this, SLOT(slotDropCap(bool)));
-	connect(bulletBox, SIGNAL(toggled(bool)), this, SLOT(slotBullets(bool)));
-	connect(numBox, SIGNAL(toggled(bool)), this, SLOT(slotNumbering(bool)));
 }
 
 void SMPStyleWidget::show(QList<ParagraphStyle*> &pstyles, QList<ParagraphStyle> &pstylesAll, QList<CharStyle> &cstyles, int unitIndex, const QString &defLang)
@@ -517,7 +469,8 @@
 		showTabs(pstyles, unitIndex);
 		showCStyle(pstyles, cstyles, defLang, unitIndex);
 		showParent(pstyles);
-		checkParEffectState();
+		//checkParEffectState();
+		setParagraphEffect(0);
 		showColors(pstyles);
 	}
 }
@@ -534,13 +487,6 @@
 		}
 		d = cstyles[i]->backgroundShade();
 	}
-	// if (d == -30000)
-	// {
-	// 	backShade_->setValue(21);
-	// 	backShade_->setText( tr("Shade"));
-	// }
-	// else
-	// 	backShade_->setValue(qRound(d));
 
 	QString s;
 	for (int i = 0; i < cstyles.count(); ++i)
@@ -552,25 +498,16 @@
 		}
 		s = cstyles[i]->backgroundColor();
 	}
-	// if (s.isEmpty())
-	// {
-	// 	if (backColor_->itemText(backColor_->count() - 1) != "")
-	// 		backColor_->addItem("");
-	// 	backColor_->setCurrentIndex(backColor_->count() - 1);
-	// }
-	// else
-	// 	backColor_->setCurrentText(s);
-
-
-	backgroundColor->setColor(s, qRound(d));
+
+	backgroundColor->setColor(s, qRound(d));
 }
 
 void SMPStyleWidget::showLineSpacing(const QList<ParagraphStyle*> &pstyles)
 {
 	lineSpacingMode->clear();
-	lineSpacingMode->addItem( tr("Fixed"));
-	lineSpacingMode->addItem( tr("Automatic"));
-	lineSpacingMode->addItem( tr("Baseline"));
+	lineSpacingMode->addItem( tr("Fixed"));
+	lineSpacingMode->addItem( tr("Automatic"));
+	lineSpacingMode->addItem( tr("Baseline"));
 
 	int tmpLP = -1;
 	for (int i = 0; i < pstyles.count(); ++i)
@@ -644,104 +581,8 @@
 		spaceBelow->setValue(tmpA);
 }
 
-void SMPStyleWidget::showDropCap(const QList<ParagraphStyle*> &pstyles, const QList<CharStyle> &cstyles, int unitIndex)
-{
-	disconnectPESignals();
-	bool dc = pstyles[0]->hasDropCap();
-	for (int i = 0; i < pstyles.count(); ++i)
-	{
-		if (dc != pstyles[i]->hasDropCap())
-		{
-			dc = false;
-			break;
-		}
-	}
-	dropCapsBox->setChecked(dc);
 
-	int lines = -1;
-	for (int i = 0; i < pstyles.count(); ++i)
-	{
-		if (lines > -1 && pstyles[i]->dropCapLines() != lines)
-		{
-			lines = -1;
-			break;
-		}
-		lines = pstyles[i]->dropCapLines();
-	}
-	if (lines == -1)
-		dropCapLines->clear();
-	else
-		dropCapLines->setValue(lines);
 
-	dropCapsBox->setEnabled(true);
-	dropCapLines->setEnabled(true);
-	connectPESignals();
-}
-
-void SMPStyleWidget::showBullet(const QList<ParagraphStyle *> &pstyles, const QList<CharStyle> &cstyles, int unitIndex)
-{
-//	double unitRatio = unitGetRatioFromIndex(unitIndex);
-
-	disconnectPESignals();
-	bool hb = pstyles[0]->hasBullet();
-	for (int i = 0; i < pstyles.count(); ++i)
-	{
-		if (hb != pstyles[i]->hasBullet())
-		{
-			hb = false;
-			break;
-		}
-	}
-	bulletBox->setChecked(hb);
-
-	QString chStr = pstyles[0]->bulletStr();
-	for (int i = 0; i < pstyles.count(); ++i)
-	{
-		if (chStr != pstyles[i]->bulletStr())
-		{
-			chStr.clear();
-			break;
-		}
-		chStr = pstyles[i]->bulletStr();
-	}
-	bulletStrEdit->setEditText(chStr);
-
-	connectPESignals();
-	bulletCharTableButton->setEnabled(true);
-}
-
-void SMPStyleWidget::showNumeration(const QList<ParagraphStyle *> &pstyles, const QList<CharStyle> &cstyles, int unitIndex)
-{
-	disconnectPESignals();
-	QString prefix = pstyles[0]->numPrefix();
-	for (int i = 0; i < pstyles.count(); ++i)
-	{
-		if (prefix != pstyles[i]->numPrefix())
-		{
-			prefix.clear();
-			break;
-		}
-		prefix = pstyles[i]->numPrefix();
-	}
-	numPrefix->setText(prefix);
-	
-	QString suffix = pstyles[0]->numSuffix();
-	for (int i = 0; i < pstyles.count(); ++i)
-	{
-		if (suffix != pstyles[i]->numSuffix())
-		{
-			suffix.clear();
-			break;
-		}
-		suffix = pstyles[i]->numSuffix();
-	}
-	numSuffix->setText(suffix);
-
-	numFormatCombo->setEnabled(true);
-	numLevelSpin->setEnabled(true);
-	connectPESignals();
-}
-
 void SMPStyleWidget::showAlignment(const QList<ParagraphStyle*> &pstyles)
 {
 	if (pstyles.isEmpty())
@@ -817,7 +658,7 @@
 //		}
 //	}
 //	optMarginCombo->setCurrentItemByData(o);
-	optMarginWidget->setOpticalMargins(pstyles[0]->opticalMargins());
+	optMarginWidget->setOpticalMargins(pstyles[0]->opticalMargins());
 }
 
 void SMPStyleWidget::showMinSpace(const QList< ParagraphStyle * > & pstyles)
@@ -1019,63 +860,10 @@
 
 }
 
-void SMPStyleWidget::slotDropCap(bool isOn)
-{
-	disconnectPESignals();
-	if (isOn)
-	{
-		dropCapLines->setEnabled(true);
+/*********************************************************************
+ *						Paragraph Effects
+ * *******************************************************************/
 
-		bulletBox->setChecked(false);
-		bulletStrEdit->setEnabled(false);
-		bulletCharTableButton->setEnabled(false);
-
-		numBox->setChecked(false);
-		numFormatCombo->setEnabled(false);
-		numLevelSpin->setEnabled(false);
-		numComboBox->setEnabled(false);
-		numRestartCombo->setEnabled(false);
-		numNewLineEdit->setEnabled(false);
-	}
-	else
-		dropCapLines->setEnabled(false);
-	if (m_hasParent)
-		parentParEffectsButton->show();
-	checkParEffectState();
-	connectPESignals();
-}
-
-void SMPStyleWidget::slotBullets(bool isOn)
-{
-	disconnectPESignals();
-	if (isOn)
-	{
-		bulletStrEdit->setEnabled(true);
-		if (bulletStrEdit->currentText().isEmpty())
-			bulletStrEdit->setEditText(bulletStrEdit->itemText(0));
-		bulletCharTableButton->setEnabled(true);
-
-		numBox->setChecked(false);
-		numFormatCombo->setEnabled(false);
-		numLevelSpin->setEnabled(false);
-		numComboBox->setEnabled(false);
-		numRestartCombo->setEnabled(false);
-		numNewLineEdit->setEnabled(false);
-
-		dropCapsBox->setChecked(false);
-		dropCapLines->setEnabled(false);
-	}
-	else
-	{
-		bulletStrEdit->setEnabled(false);
-		bulletCharTableButton->setEnabled(false);
-	}
-	if (m_hasParent)
-		parentParEffectsButton->show();
-	checkParEffectState();
-	connectPESignals();
-}
-
 void SMPStyleWidget::insertSpecialChars(const QVector<uint> &charCodes)
 {
 	QString chars = QString::fromUcs4(charCodes.data(), charCodes.length());
@@ -1082,46 +870,21 @@
 	bulletStrEdit->lineEdit()->setText(chars);
 }
 
-void SMPStyleWidget::slotNumbering(bool isOn)
+void SMPStyleWidget::slotParentParEffects()
 {
-	disconnectPESignals();
-	if (isOn)
-	{
-		numFormatCombo->setEnabled(true);
-		numLevelSpin->setEnabled(true);
-		numComboBox->setEnabled(true);
-		if (numComboBox->currentIndex() < 0)
-			numComboBox->setCurrentIndex(0);
-		numRestartCombo->setEnabled(true);
-		numNewLineEdit->setEnabled(true);
+	parentParEffectsButton->hide();
 
-		bulletBox->setChecked(false);
-		bulletStrEdit->setEnabled(false);
-		bulletCharTableButton->setEnabled(false);
-
-		dropCapsBox->setChecked(false);
-		dropCapLines->setEnabled(false);
-	}
+	if (m_parentDC)
+		setParagraphEffect(1);
+	else if (m_parentBul)
+		setParagraphEffect(2);
+	else if (m_parentNum)
+		setParagraphEffect(3);
 	else
-	{
-		numFormatCombo->setEnabled(false);
-		numLevelSpin->setEnabled(false);
-	}
-	if (m_hasParent)
-		parentParEffectsButton->show();
-	checkParEffectState();
-	connectPESignals();
-}
+		setParagraphEffect(0);
 
-void SMPStyleWidget::slotParentParEffects()
-{
-	disconnectPESignals();
-	parentParEffectsButton->hide();
-	dropCapsBox->setChecked(m_parentDC);
-	bulletBox->setChecked(m_parentBul);
-	numBox->setChecked(m_parentNum);
 	emit useParentParaEffects();
-	connectPESignals();
+
 }
 
 void SMPStyleWidget::openEnhanced()
@@ -1160,22 +923,6 @@
 	m_enhanced = nullptr;
 }
 
-void SMPStyleWidget::connectPESignals()
-{
-	connect(parentParEffectsButton, SIGNAL(clicked()), this, SLOT(slotParentParEffects()));
-	connect(bulletBox, SIGNAL(toggled(bool)), this, SLOT(slotBullets(bool)));
-	connect(numBox, SIGNAL(toggled(bool)), this, SLOT(slotNumbering(bool)));
-	connect(dropCapsBox, SIGNAL(toggled(bool)), this, SLOT(slotDropCap(bool)));
-}
-
-void SMPStyleWidget::disconnectPESignals()
-{
-	disconnect(parentParEffectsButton, SIGNAL(clicked()), this, SLOT(slotParentParEffects()));
-	disconnect(bulletBox, SIGNAL(toggled(bool)), this, SLOT(slotBullets(bool)));
-	disconnect(numBox, SIGNAL(toggled(bool)), this, SLOT(slotNumbering(bool)));
-	disconnect(dropCapsBox, SIGNAL(toggled(bool)), this, SLOT(slotDropCap(bool)));
-}
-
 void SMPStyleWidget::on_bulletCharTableButton_toggled(bool checked)
 {
 	if (m_enhanced && !checked)
@@ -1191,3 +938,178 @@
 	if (updateFlags & reqNumUpdate)
 		fillNumerationsCombo();
 }
+
+void SMPStyleWidget::fillBulletStrEditCombo()
+{
+	bulletStrEdit->clear();
+	bulletStrEdit->addItem(QChar(0x2022));
+	bulletStrEdit->addItem("*");
+	bulletStrEdit->addItem(QChar(0x2013));
+	bulletStrEdit->setMinimumWidth(50);
+	if (bulletStrEdit->currentText().isEmpty())
+		bulletStrEdit->setEditText(QChar(0x2022));
+}
+
+void SMPStyleWidget::fillNumerationsCombo()
+{
+	QStringList numNames;
+	const auto numerationKeys = m_Doc->numerations.keys();
+	for (const QString& numName : numerationKeys)
+	{
+		if (numName.isEmpty())
+			continue;
+		numNames.append(numName);
+	}
+	numNames.sort();
+	numComboBox->clear();
+	numComboBox->insertItems(0, numNames);
+	numComboBox->setCurrentItem(0);
+}
+
+void SMPStyleWidget::fillNumRestartCombo()
+{
+	numRestartCombo->clear();
+	numRestartCombo->addItem(tr("Document"), static_cast<int>(NSRdocument));
+	numRestartCombo->addItem(tr("Story") , static_cast<int>(NSRstory));
+}
+
+void SMPStyleWidget::fillPECombo()
+{
+	QSignalBlocker sb(peCombo);
+	int currIndex = peCombo->currentIndex();
+	peCombo->clear();
+	peCombo->addItem(tr("No Paragraph Effects"), -1);
+	peCombo->addItem(tr("Drop Caps"), 0);
+	peCombo->addItem(tr("Bulleted List"), 1);
+	peCombo->addItem(tr("Numbered List"), 2);
+	peCombo->setCurrentIndex(currIndex);
+}
+
+void SMPStyleWidget::setParagraphEffect(int index)
+{
+	QSignalBlocker sigPECombo(peCombo);
+
+	peCombo->setCurrentIndex(index);
+	int id = peCombo->currentIndex();
+
+	if (id == 1 || id == 2 || id == 3)
+	{
+		stackedWidget->setCurrentIndex(id - 1);
+		stackedWidget->setVisible(true);
+		peGroup->setVisible(true);
+
+		if (id == 2) // Bullet List
+		{
+			if (bulletStrEdit->currentText().isEmpty())
+				bulletStrEdit->setEditText(bulletStrEdit->itemText(0));
+		}
+		else if (id == 3) // Numbered List
+		{
+			if (numComboBox->currentIndex() < 0)
+				numComboBox->setCurrentIndex(0);
+		}
+	}
+	else // No effect
+	{
+		stackedWidget->setVisible(false);
+		peGroup->setVisible(false);
+		peCombo->setCurrentIndex(0);
+	}
+}
+
+void SMPStyleWidget::showDropCap(const QList<ParagraphStyle*> &pstyles, const QList<CharStyle> &cstyles, int unitIndex)
+{
+	bool dc = pstyles[0]->hasDropCap();
+	for (int i = 0; i < pstyles.count(); ++i)
+	{
+		if (dc != pstyles[i]->hasDropCap())
+		{
+			dc = false;
+			break;
+		}
+	}
+
+	if (dc)
+		setParagraphEffect(1);
+
+	int lines = -1;
+	for (int i = 0; i < pstyles.count(); ++i)
+	{
+		if (lines > -1 && pstyles[i]->dropCapLines() != lines)
+		{
+			lines = -1;
+			break;
+		}
+		lines = pstyles[i]->dropCapLines();
+	}
+	if (lines == -1)
+		dropCapLines->clear();
+	else
+		dropCapLines->setValue(lines);
+}
+
+void SMPStyleWidget::showBullet(const QList<ParagraphStyle *> &pstyles, const QList<CharStyle> &cstyles, int unitIndex)
+{
+//	double unitRatio = unitGetRatioFromIndex(unitIndex);
+
+	bool hb = pstyles[0]->hasBullet();
+	for (int i = 0; i < pstyles.count(); ++i)
+	{
+		if (hb != pstyles[i]->hasBullet())
+		{
+			hb = false;
+			break;
+		}
+	}
+
+	if (hb)
+		setParagraphEffect(2);
+
+	QString chStr = pstyles[0]->bulletStr();
+	for (int i = 0; i < pstyles.count(); ++i)
+	{
+		if (chStr != pstyles[i]->bulletStr())
+		{
+			chStr.clear();
+			break;
+		}
+		chStr = pstyles[i]->bulletStr();
+	}
+	bulletStrEdit->setEditText(chStr);
+}
+
+void SMPStyleWidget::showNumeration(const QList<ParagraphStyle *> &pstyles, const QList<CharStyle> &cstyles, int unitIndex)
+{
+
+	QString prefix = pstyles[0]->numPrefix();
+	for (int i = 0; i < pstyles.count(); ++i)
+	{
+		if (prefix != pstyles[i]->numPrefix())
+		{
+			prefix.clear();
+			break;
+		}
+		prefix = pstyles[i]->numPrefix();
+	}
+	numPrefix->setText(prefix);
+
+	QString suffix = pstyles[0]->numSuffix();
+	for (int i = 0; i < pstyles.count(); ++i)
+	{
+		if (suffix != pstyles[i]->numSuffix())
+		{
+			suffix.clear();
+			break;
+		}
+		suffix = pstyles[i]->numSuffix();
+	}
+	numSuffix->setText(suffix);
+}
+
+void SMPStyleWidget::handleParEffectUse(int index)
+{
+	if (m_hasParent)
+		parentParEffectsButton->show();
+
+	setParagraphEffect(index);
+}
Index: scribus/ui/smpstylewidget.h
===================================================================
--- scribus/ui/smpstylewidget.h	(Revision 26349)
+++ scribus/ui/smpstylewidget.h	(Arbeitskopie)
@@ -51,7 +51,8 @@
 	void fillBulletStrEditCombo();
 	void fillNumerationsCombo();
 	void fillNumRestartCombo();
-	void checkParEffectState();
+	void fillPECombo();
+	void setParagraphEffect(int);
 	void showColors(const QList<ParagraphStyle*> &cstyles);
 	void showLineSpacing(const QList<ParagraphStyle*> &pstyles);
 	void showSpaceAB(const QList<ParagraphStyle*> &pstyles, int unitIndex);
@@ -71,8 +72,6 @@
 
 	void openEnhanced();
 	void closeEnhanced(bool show = false);
-	void connectPESignals();
-	void disconnectPESignals();
 
 	friend class SMParagraphStyle;
 
@@ -79,11 +78,9 @@
 private slots:
 	void iconSetChange();
 	void slotLineSpacingModeChanged(int);
-	void slotDropCap(bool isOn);
-	void slotBullets(bool isOn);
 	void insertSpecialChars(const QVector<uint> &charCodes);
-	void slotNumbering(bool isOn);
 	void slotParentParEffects();
+	void handleParEffectUse(int);
 	void on_bulletCharTableButton_toggled(bool checked);
 	void handleUpdateRequest(int);
 
Index: scribus/ui/smtabruler.cpp
===================================================================
--- scribus/ui/smtabruler.cpp	(Revision 26349)
+++ scribus/ui/smtabruler.cpp	(Arbeitskopie)
@@ -31,23 +31,12 @@
 	rightIndentSpin = new SMScrSpinBox(0, 4000, this, dEin);
 	Q_CHECK_PTR(rightIndentSpin);
 
-//	indentLayout->rightIndentLabel->removeWidget(firstLineData);
 	firstLineData->hide();
-	firstLineLabel->addWidget(firstLineSpin);
-	// indentLayout->insertWidget(1, firstLineSpin);
-	// firstLineSpin->show();
-
-//	indentLayout->removeWidget(leftIndentData);
+	firstLineLabel->addWidget(firstLineSpin);
 	leftIndentData->hide();
-	leftIndentLabel->addWidget(leftIndentSpin);
-//	indentLayout->insertWidget(3, leftIndentSpin);
-//	leftIndentSpin->show();
-
-//	indentLayout->removeWidget(rightIndentData);
+	leftIndentLabel->addWidget(leftIndentSpin);
 	rightIndentData->hide();
-	rightIndentLabel->addWidget(rightIndentSpin);
-//	indentLayout->insertWidget(5, rightIndentSpin);
-//	rightIndentSpin->show();
+	rightIndentLabel->addWidget(rightIndentSpin);
 
 	connect(firstLineData, SIGNAL(valueChanged(double)), this, SLOT(firstDataChanged()));
 	connect(rightIndentData, SIGNAL(valueChanged(double)), this, SLOT(rightDataChanged()));
@@ -338,10 +327,6 @@
 
 void SMTabruler::firstValueChanged()
 {
-//	QSignalBlocker firstLineDataBlocker(firstLineData);
-//	QSignalBlocker rightIndentDataBlocker(rightIndentData);
-//	QSignalBlocker leftIndentDataBlocker(leftIndentData);
-
 	double a, b, value;
 	int c;
 	firstLineSpin->getValues(&a, &b, &c, &value);
@@ -354,8 +339,6 @@
 
 void SMTabruler::leftValueChanged()
 {
-//	QSignalBlocker firstLineDataBlocker(firstLineData);
-//	QSignalBlocker rightIndentDataBlocker(rightIndentData);
 	QSignalBlocker leftIndentDataBlocker(leftIndentData);
 
 	double a, b, value;
@@ -363,7 +346,6 @@
 	leftIndentSpin->getValues(&a, &b, &c, &value);
 	setLeftIndentData(value / m_docUnitRatio);
 	setLeftIndent();
-//	setFirstLine();
 	setRightIndent();
 	m_isSetupLeft = true;
 }
Index: scribus/ui/smtextstyles.cpp
===================================================================
--- scribus/ui/smtextstyles.cpp	(Revision 26349)
+++ scribus/ui/smtextstyles.cpp	(Arbeitskopie)
@@ -507,15 +507,15 @@
 	connect(m_pwidget->maxConsecutiveCountSpinBox, SIGNAL(valueChanged(int)),this,SLOT(slotConsecutiveLines()));
 
 	connect(m_pwidget, SIGNAL(useParentParaEffects()), this, SLOT(slotParentParaEffects()));
-	connect(m_pwidget->dropCapsBox, SIGNAL(toggled(bool)), this, SLOT(slotDropCap(bool)));
+	connect(m_pwidget->peCombo, SIGNAL(currentIndexChanged(int)), this, SLOT(slotPargraphEffects(int)));
+//	connect(m_pwidget->dropCapsBox, SIGNAL(toggled(bool)), this, SLOT(slotDropCap(bool)));
 	connect(m_pwidget->dropCapLines, SIGNAL(valueChanged(int)), this, SLOT(slotDropCapLines(int)));
 	connect(m_pwidget->parEffectOffset, SIGNAL(valueChanged(double)), this, SLOT(slotParEffectOffset()));
 	connect(m_pwidget->parEffectIndentBox, SIGNAL(toggled(bool)), this, SLOT(slotParEffectIndent(bool)));
 	connect(m_pwidget->parEffectCharStyleCombo, SIGNAL(activated(int)), this, SLOT(slotParEffectCharStyle(int)));
-
-	connect(m_pwidget->bulletBox, SIGNAL(toggled(bool)), this, SLOT(slotBullet(bool)));
+//	connect(m_pwidget->bulletBox, SIGNAL(toggled(bool)), this, SLOT(slotBullet(bool)));
 	connect(m_pwidget->bulletStrEdit, SIGNAL(editTextChanged(QString)), this, SLOT(slotBulletStr(QString)));
-	connect(m_pwidget->numBox, SIGNAL(toggled(bool)), this, SLOT(slotNumeration(bool)));
+//	connect(m_pwidget->numBox, SIGNAL(toggled(bool)), this, SLOT(slotNumeration(bool)));
 	connect(m_pwidget->numComboBox, SIGNAL(textActivated(QString)), this, SLOT(slotNumName(QString)));
 	connect(m_pwidget->numLevelSpin, SIGNAL(valueChanged(int)), this, SLOT(slotNumLevel(int)));
 	connect(m_pwidget->numFormatCombo, SIGNAL(activated(int)), this, SLOT(slotNumFormat(int)));
@@ -611,15 +611,15 @@
 	disconnect(m_pwidget->maxConsecutiveCountSpinBox, SIGNAL(valueChanged(int)),this,SLOT(slotConsecutiveLines()));
 
 	disconnect(m_pwidget, SIGNAL(useParentParaEffects()), this, SLOT(slotParentParaEffects()));
-	disconnect(m_pwidget->dropCapsBox, SIGNAL(toggled(bool)), this, SLOT(slotDropCap(bool)));
+	disconnect(m_pwidget->peCombo, SIGNAL(currentIndexChanged(int)), this, SLOT(slotPargraphEffects(int)));
+//	disconnect(m_pwidget->dropCapsBox, SIGNAL(toggled(bool)), this, SLOT(slotDropCap(bool)));
 	disconnect(m_pwidget->dropCapLines, SIGNAL(valueChanged(int)), this, SLOT(slotDropCapLines(int)));
 	disconnect(m_pwidget->parEffectOffset, SIGNAL(valueChanged(double)), this, SLOT(slotParEffectOffset()));
 	disconnect(m_pwidget->parEffectIndentBox, SIGNAL(toggled(bool)), this, SLOT(slotParEffectIndent(bool)));
 	disconnect(m_pwidget->parEffectCharStyleCombo, SIGNAL(activated(int)), this, SLOT(slotParEffectCharStyle(int)));
-
-	disconnect(m_pwidget->bulletBox, SIGNAL(toggled(bool)), this, SLOT(slotBullet(bool)));
+//	disconnect(m_pwidget->bulletBox, SIGNAL(toggled(bool)), this, SLOT(slotBullet(bool)));
 	disconnect(m_pwidget->bulletStrEdit, SIGNAL(editTextChanged(QString)), this, SLOT(slotBulletStr(QString)));
-	disconnect(m_pwidget->numBox, SIGNAL(toggled(bool)), this, SLOT(slotNumeration(bool)));
+//	disconnect(m_pwidget->numBox, SIGNAL(toggled(bool)), this, SLOT(slotNumeration(bool)));
 	disconnect(m_pwidget->numComboBox, SIGNAL(textActivated(QString)), this, SLOT(slotNumName(QString)));
 	disconnect(m_pwidget->numFormatCombo, SIGNAL(activated(int)), this, SLOT(slotNumFormat(int)));
 	disconnect(m_pwidget->numLevelSpin, SIGNAL(valueChanged(int)), this, SLOT(slotNumLevel(int)));
@@ -873,30 +873,65 @@
 	slotSelectionDirty();
 }
 
-void SMParagraphStyle::slotDropCap(bool isOn)
+// void SMParagraphStyle::slotDropCap(bool isOn)
+// {
+// 	for (int i = 0; i < m_selection.count(); ++i)
+// 	{
+// 		m_selection[i]->setHasDropCap(isOn);
+// 		if (isOn)
+// 		{
+// 			m_selection[i]->setHasBullet(false);
+// 			m_selection[i]->setHasNum(false);
+// 		}
+// 	}
+	
+// 	slotSelectionDirty();
+// }
+
+void SMParagraphStyle::slotParentParaEffects()
 {
+	// for (int i = 0; i < m_selection.count(); ++i)
+	// {
+	// 	m_selection[i]->resetHasDropCap();
+	// 	m_selection[i]->resetHasBullet();
+	// 	m_selection[i]->resetHasNum();
+	// }
+	slotPargraphEffects(0); // No effect
+	
+	slotSelectionDirty();
+}
+
+void SMParagraphStyle::slotPargraphEffects(int index)
+{
 	for (int i = 0; i < m_selection.count(); ++i)
 	{
-		m_selection[i]->setHasDropCap(isOn);
-		if (isOn)
+		if (index == 1) // Drop Caps
 		{
+			m_selection[i]->setHasDropCap(true);
 			m_selection[i]->setHasBullet(false);
 			m_selection[i]->setHasNum(false);
 		}
+		else if (index == 2) // Bullet List
+		{
+			m_selection[i]->setHasDropCap(false);
+			m_selection[i]->setHasBullet(true);
+			m_selection[i]->setHasNum(false);
+			m_selection[i]->setBulletStr(m_pwidget->bulletStrEdit->currentText());
+		}
+		else if (index == 3) // Numbered List
+		{
+			m_selection[i]->setHasDropCap(false);
+			m_selection[i]->setHasBullet(false);
+			m_selection[i]->setHasNum(true);
+		}
+		else // No effect
+		{
+			m_selection[i]->resetHasDropCap();
+			m_selection[i]->resetHasBullet();
+			m_selection[i]->resetHasNum();
+		}
 	}
-	
-	slotSelectionDirty();
-}
 
-void SMParagraphStyle::slotParentParaEffects()
-{
-	for (int i = 0; i < m_selection.count(); ++i)
-	{
-		m_selection[i]->resetHasDropCap();
-		m_selection[i]->resetHasBullet();
-		m_selection[i]->resetHasNum();
-	}
-	
 	slotSelectionDirty();
 }
 
@@ -962,21 +997,21 @@
 	slotSelectionDirty();
 }
 
-void SMParagraphStyle::slotBullet(bool isOn)
-{
-	for (int i = 0; i < m_selection.count(); ++i)
-	{
-		m_selection[i]->setHasBullet(isOn);
-		if (isOn)
-		{
-			m_selection[i]->setBulletStr(m_pwidget->bulletStrEdit->currentText());
-			m_selection[i]->setHasDropCap(false);
-			m_selection[i]->setHasNum(false);
-		}
-	}
+// void SMParagraphStyle::slotBullet(bool isOn)
+// {
+// 	for (int i = 0; i < m_selection.count(); ++i)
+// 	{
+// 		m_selection[i]->setHasBullet(isOn);
+// 		if (isOn)
+// 		{
+// 			m_selection[i]->setBulletStr(m_pwidget->bulletStrEdit->currentText());
+// 			m_selection[i]->setHasDropCap(false);
+// 			m_selection[i]->setHasNum(false);
+// 		}
+// 	}
 	
-	slotSelectionDirty();
-}
+// 	slotSelectionDirty();
+// }
 
 void SMParagraphStyle::slotBulletStr(const QString &str)
 {
@@ -992,20 +1027,20 @@
 	slotSelectionDirty();
 }
 
-void SMParagraphStyle::slotNumeration(bool isOn)
-{
-	for (int i = 0; i < m_selection.count(); ++i)
-	{
-		m_selection[i]->setHasNum(isOn);
-		if (isOn)
-		{
-			m_selection[i]->setHasDropCap(false);
-			m_selection[i]->setHasBullet(false);
-		}
-	}
+// void SMParagraphStyle::slotNumeration(bool isOn)
+// {
+// 	for (int i = 0; i < m_selection.count(); ++i)
+// 	{
+// 		m_selection[i]->setHasNum(isOn);
+// 		if (isOn)
+// 		{
+// 			m_selection[i]->setHasDropCap(false);
+// 			m_selection[i]->setHasBullet(false);
+// 		}
+// 	}
 	
-	slotSelectionDirty();
-}
+// 	slotSelectionDirty();
+// }
 
 void SMParagraphStyle::slotNumName(const QString &str)
 {
Index: scribus/ui/smtextstyles.h
===================================================================
--- scribus/ui/smtextstyles.h	(Revision 26349)
+++ scribus/ui/smtextstyles.h	(Arbeitskopie)
@@ -74,14 +74,12 @@
 	void slotLineSpacingMode(int mode);
 	void slotLineSpacing();
 	void slotParentParaEffects();
-	void slotDropCap(bool isOn);
+	void slotPargraphEffects(int index);
 	void slotDropCapLines(int lines);
 	void slotParEffectOffset();
 	void slotParEffectIndent(bool);
 	void slotParEffectCharStyle(int);
-	void slotBullet(bool isOn);
 	void slotBulletStr(const QString &str);
-	void slotNumeration(bool isOn);
 	void slotNumName(const QString &str);
 	void slotNumNew();
 	void slotSelectionDirty();
Index: scribus/ui/stylemanager.cpp
===================================================================
--- scribus/ui/stylemanager.cpp	(Revision 26349)
+++ scribus/ui/stylemanager.cpp	(Arbeitskopie)
@@ -41,7 +41,6 @@
 	styleView->hideColumn(SHORTCUT_COL);
 	styleView->setSelectionMode(QAbstractItemView::ExtendedSelection);
 	uniqueLabel->hide();
-	rightFrame->hide();
 
 	applyButton->setEnabled(false);
 	resetButton->setEnabled(false);
@@ -894,7 +893,6 @@
 		editFrame->hide();
 		applyButton->hide();
 		resetButton->hide();
-		rightFrame->hide();
 		m_isEditMode = false;
 		for (int i = 0; i < m_items.count(); ++i)
 		{
@@ -939,7 +937,6 @@
 		editFrame->show();
 		applyButton->show();
 		resetButton->show();
-		rightFrame->show();
 		m_isEditMode = true;
 		for (int i = 0; i < m_items.count(); ++i)
 			m_items.at(i)->editMode(true);
Index: scribus/ui/textpalette.cpp
===================================================================
--- scribus/ui/textpalette.cpp	(Revision 26349)
+++ scribus/ui/textpalette.cpp	(Arbeitskopie)
@@ -318,8 +318,6 @@
 	if (!m_haveDoc || !m_ScMW || m_ScMW->scriptIsRunning())
 		return;
 
-	textPal->updateColorList();
-
 	assert (m_doc->PageColors.document());
 }
 
Index: scribus/ui/widgets/color_button.cpp
===================================================================
--- scribus/ui/widgets/color_button.cpp	(Revision 26349)
+++ scribus/ui/widgets/color_button.cpp	(Arbeitskopie)
@@ -798,7 +798,7 @@
 		painter.setClipping(false);
 
 		QTransform t = dotBrush().transform();
-		t.translate(fDot.x(), fDot.y());
+		t.translate(fDot.x() * devicePixelRatio(), fDot.y() * devicePixelRatio());
 
 		QBrush br = dotBrush();
 		br.setTransform(t);
