summaryrefslogtreecommitdiffstats
path: root/scribus/smstyleselect.cpp
diff options
context:
space:
mode:
authorcraig <craig@11d20701-8431-0410-a711-e3c959e3b870>2012-01-01 11:40:09 +0000
committercraig <craig@11d20701-8431-0410-a711-e3c959e3b870>2012-01-01 11:40:09 +0000
commit7ed83b6c6666eb8b6b104c211ae7e52907350372 (patch)
tree4430b556abac0ad660a0aacf1887d77f85d8be02 /scribus/smstyleselect.cpp
downloadscribus-7ed83b6c6666eb8b6b104c211ae7e52907350372.tar.gz
scribus-7ed83b6c6666eb8b6b104c211ae7e52907350372.tar.xz
scribus-7ed83b6c6666eb8b6b104c211ae7e52907350372.zip
Branch 1.3.5 tree to 1.4.x tree, goodbye 1.3.x
git-svn-id: svn://scribus.net/branches/Version14x/Scribus@17163 11d20701-8431-0410-a711-e3c959e3b870
Diffstat (limited to 'scribus/smstyleselect.cpp')
-rw-r--r--scribus/smstyleselect.cpp120
1 files changed, 120 insertions, 0 deletions
diff --git a/scribus/smstyleselect.cpp b/scribus/smstyleselect.cpp
new file mode 100644
index 0000000..6095074
--- /dev/null
+++ b/scribus/smstyleselect.cpp
@@ -0,0 +1,120 @@
+/*
+For general Scribus (>=1.3.2) copyright and licensing information please refer
+to the COPYING file provided with the program. Following this notice may exist
+a copyright and/or license notice that predates the release of Scribus 1.3.2
+for which a new license (GPL+exception) is in place.
+*/
+
+#include "smstyleselect.h"
+
+
+SMStyleSelect::SMStyleSelect(QWidget *parent)
+: StyleSelect(parent),
+ hasParent_(false),
+ useParentStyle_(false),
+ pStyle_(0)
+{
+ parentButton = new QToolButton(this);
+ parentButton->setMaximumSize(QSize(22, 22));
+ parentButton->setMinimumSize(QSize(22, 22));
+ parentButton->setText( tr("P", "P as in Parent"));
+ parentButton->setToolTip( tr("Use parent style's effects instead of overriding them"));
+ ssLayout->addWidget(parentButton);
+ resize(minimumSizeHint());
+ parentButton->hide();
+}
+
+void SMStyleSelect::setStyle(int i)
+{
+ disconnect(this, SIGNAL(State(int)), this, SLOT(styleChanged()));
+ disconnect(ShadowVal->Xoffset, SIGNAL(valueChanged(double)),this, SLOT(styleChanged()));
+ disconnect(ShadowVal->Yoffset, SIGNAL(valueChanged(double)),this, SLOT(styleChanged()));
+ disconnect(OutlineVal->LWidth, SIGNAL(valueChanged(double)),this, SLOT(styleChanged()));
+ disconnect(UnderlineVal->LPos, SIGNAL(valueChanged(double)),this, SLOT(styleChanged()));
+ disconnect(UnderlineVal->LWidth, SIGNAL(valueChanged(double)),this, SLOT(styleChanged()));
+ disconnect(StrikeVal->LPos, SIGNAL(valueChanged(double)), this, SLOT(styleChanged()));
+ disconnect(StrikeVal->LWidth, SIGNAL(valueChanged(double)), this, SLOT(styleChanged()));
+ disconnect(parentButton, SIGNAL(pressed()), this, SLOT(pbPressed()));
+ setFont(false);
+ hasParent_ = false;
+ pStyle_ = 0;
+ parentButton->hide();
+ StyleSelect::setStyle(i);
+}
+
+void SMStyleSelect::setStyle(int i, bool isParentValue)
+{
+ disconnect(this, SIGNAL(State(int)), this, SLOT(styleChanged()));
+ disconnect(ShadowVal->Xoffset, SIGNAL(valueChanged(double)),this, SLOT(styleChanged()));
+ disconnect(ShadowVal->Yoffset, SIGNAL(valueChanged(double)),this, SLOT(styleChanged()));
+ disconnect(OutlineVal->LWidth, SIGNAL(valueChanged(double)),this, SLOT(styleChanged()));
+ disconnect(UnderlineVal->LPos, SIGNAL(valueChanged(double)),this, SLOT(styleChanged()));
+ disconnect(UnderlineVal->LWidth, SIGNAL(valueChanged(double)),this, SLOT(styleChanged()));
+ disconnect(StrikeVal->LPos, SIGNAL(valueChanged(double)), this, SLOT(styleChanged()));
+ disconnect(StrikeVal->LWidth, SIGNAL(valueChanged(double)), this, SLOT(styleChanged()));
+ disconnect(parentButton, SIGNAL(pressed()), this, SLOT(pbPressed()));
+ hasParent_ = true;
+ pStyle_ = i;
+ setFont(!isParentValue);
+ if (isParentValue)
+ parentButton->hide();
+ else
+ parentButton->show();
+ parentButton->setChecked(true);
+ StyleSelect::setStyle(i);
+ connect(this, SIGNAL(State(int)), this, SLOT(styleChanged()));
+ connect(ShadowVal->Xoffset, SIGNAL(valueChanged(double)),this, SLOT(styleChanged()));
+ connect(ShadowVal->Yoffset, SIGNAL(valueChanged(double)),this, SLOT(styleChanged()));
+ connect(OutlineVal->LWidth, SIGNAL(valueChanged(double)),this, SLOT(styleChanged()));
+ connect(UnderlineVal->LPos, SIGNAL(valueChanged(double)),this, SLOT(styleChanged()));
+ connect(UnderlineVal->LWidth, SIGNAL(valueChanged(double)),this, SLOT(styleChanged()));
+ connect(StrikeVal->LPos, SIGNAL(valueChanged(double)), this, SLOT(styleChanged()));
+ connect(StrikeVal->LWidth, SIGNAL(valueChanged(double)), this, SLOT(styleChanged()));
+ connect(parentButton, SIGNAL(pressed()), this, SLOT(pbPressed()));
+}
+
+void SMStyleSelect::setParentItem(int i)
+{
+ hasParent_ = true;
+ pStyle_ = i;
+}
+
+bool SMStyleSelect::useParentValue()
+{
+ bool ret = useParentStyle_;
+ useParentStyle_ = false;
+ if (ret)
+ setStyle(pStyle_, true);
+
+ return ret;
+}
+
+void SMStyleSelect::setFont(bool wantBold)
+{
+ QFont f(font());
+ f.setBold(wantBold);
+ parentButton->setFont(f);
+ ShadowVal->Xoffset->setFont(f);
+ ShadowVal->Yoffset->setFont(f);
+ OutlineVal->LWidth->setFont(f);
+ UnderlineVal->LPos->setFont(f);
+ UnderlineVal->LWidth->setFont(f);
+ StrikeVal->LPos->setFont(f);
+ StrikeVal->LWidth->setFont(f);
+ StyleSelect::setFont(f);
+}
+
+void SMStyleSelect::styleChanged()
+{
+ if (hasParent_)
+ {
+ setFont(true);
+ parentButton->show();
+ }
+}
+
+void SMStyleSelect::pbPressed()
+{
+ useParentStyle_ = true;
+ emit State(getStyle());
+}