summaryrefslogtreecommitdiffstats
path: root/scribus/smshadebutton.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/smshadebutton.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/smshadebutton.cpp')
-rw-r--r--scribus/smshadebutton.cpp87
1 files changed, 87 insertions, 0 deletions
diff --git a/scribus/smshadebutton.cpp b/scribus/smshadebutton.cpp
new file mode 100644
index 0000000..9db752b
--- /dev/null
+++ b/scribus/smshadebutton.cpp
@@ -0,0 +1,87 @@
+/*
+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 "smshadebutton.h"
+
+
+SMShadeButton::SMShadeButton(QWidget *parent)
+: ShadeButton(parent),
+ hasParent_(false),
+ useParentValue_(false),
+ pValue_(0)
+{
+
+}
+
+void SMShadeButton::setValue(int i)
+{
+ disconnect(this, SIGNAL(pressed()), this, SLOT(currentChanged()));
+ setFont(false);
+ hasParent_ = false;
+ pValue_ = 0;
+ ShadeButton::setValue(i);
+}
+
+void SMShadeButton::setValue(int i, bool isParentValue)
+{
+ disconnect(this, SIGNAL(pressed()), this, SLOT(currentChanged()));
+ hasParent_ = true;
+ pValue_ = i;
+ setFont(!isParentValue);
+ ShadeButton::setValue(i);
+ connect(this, SIGNAL(pressed()), this, SLOT(currentChanged()));
+}
+
+void SMShadeButton::setParentValue(int i)
+{
+ hasParent_ = true;
+ pValue_ = i;
+}
+
+bool SMShadeButton::useParentValue()
+{
+ bool ret = useParentValue_;
+ useParentValue_ = false;
+
+ if (ret)
+ {
+ setValue(pValue_, true);
+ QList<QAction*> actList = FillSh->actions();
+ FillSh->removeAction(actList.last());
+ }
+
+
+ return ret;
+}
+
+void SMShadeButton::setFont(bool wantBold)
+{
+ QFont f(font());
+ f.setBold(wantBold);
+ FillSh->setFont(f);
+ ShadeButton::setFont(f);
+}
+
+void SMShadeButton::currentChanged()
+{
+ if (hasParent_)
+ {
+ setFont(true);
+ QString upv = tr("Use Parent Value");
+ QList<QAction*> actList = FillSh->actions();
+ if (actList.last()->text() != upv)
+ FillSh->addAction(upv, this, SLOT(slotUseParent()));
+ }
+}
+
+void SMShadeButton::slotUseParent()
+{
+ useParentValue_ = true;
+ QList<QAction*> actList = FillSh->actions();
+ FillSh->removeAction(actList.last());
+ emit clicked();
+}