summaryrefslogtreecommitdiffstats
path: root/scribus/smfontcomboh.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/smfontcomboh.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/smfontcomboh.cpp')
-rw-r--r--scribus/smfontcomboh.cpp98
1 files changed, 98 insertions, 0 deletions
diff --git a/scribus/smfontcomboh.cpp b/scribus/smfontcomboh.cpp
new file mode 100644
index 0000000..f2b3ca3
--- /dev/null
+++ b/scribus/smfontcomboh.cpp
@@ -0,0 +1,98 @@
+/*
+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 "smfontcomboh.h"
+
+
+SMFontComboH::SMFontComboH(QWidget *parent)
+: FontComboH(parent, true),
+ hasParent_(false),
+ useParentValue_(false),
+ pFont_(QString::null),
+ usePFont_( tr("Use Parent Font"))
+{
+
+}
+
+void SMFontComboH::setCurrentFont(const QString &s)
+{
+ disconnect(fontFamily, SIGNAL(highlighted(int)), this, SLOT(currentChanged()));
+ disconnect(fontStyle, SIGNAL(highlighted(int)), this, SLOT(currentChanged()));
+ setFont(false);
+ hasParent_ = false;
+ pFont_ = s;
+ FontComboH::setCurrentFont(s);
+}
+
+void SMFontComboH::setCurrentFont(const QString &s, bool isParentValue)
+{
+ disconnect(fontFamily, SIGNAL(highlighted(int)), this, SLOT(currentChanged()));
+ disconnect(fontStyle, SIGNAL(highlighted(int)), this, SLOT(currentChanged()));
+ hasParent_ = true;
+ pFont_ = s;
+ FontComboH::setCurrentFont(s);
+ setFont(!isParentValue);
+ connect(fontFamily, SIGNAL(highlighted(int)), this, SLOT(currentChanged()));
+ connect(fontStyle, SIGNAL(highlighted(int)), this, SLOT(currentChanged()));
+}
+
+void SMFontComboH::setParentFont(const QString &s)
+{
+ hasParent_ = true;
+ pFont_ = s;
+}
+
+bool SMFontComboH::useParentFont()
+{
+ bool ret = false;
+
+ if (useParentValue_ && hasParent_)
+ {
+ ret = fontFamily->currentIndex() == (fontFamily->count() - 1) ||
+ fontStyle->currentIndex() == (fontStyle->count() - 1);
+
+ if (ret)
+ {
+ fontFamily->removeItem(fontFamily->count() - 1);
+ fontStyle->removeItem(fontStyle->count() - 1);
+ setFont(false);
+ setCurrentFont(pFont_, true);
+ useParentValue_ = false;
+ }
+ }
+
+ return ret;
+}
+
+void SMFontComboH::setFont(bool wantBold)
+{
+ QFont f(font());
+ f.setBold(wantBold);
+ fontFamily->setFont(f);
+ fontStyle->setFont(f);
+}
+
+void SMFontComboH::currentChanged()
+{
+ if (hasParent_ && !useParentValue_)
+ {
+ setFont(true);
+ fontFamily->addItem(usePFont_);
+ fontStyle->addItem(usePFont_);
+ useParentValue_ = true;
+ }
+ else if (hasParent_)
+ checkStyle();
+}
+
+void SMFontComboH::checkStyle()
+{
+ if (hasParent_ && useParentValue_)
+ {
+ if (fontStyle->itemText(fontStyle->count() - 1) != usePFont_)
+ fontStyle->addItem(usePFont_);
+ }
+}