diff options
author | craig <craig@11d20701-8431-0410-a711-e3c959e3b870> | 2012-01-01 11:40:09 +0000 |
---|---|---|
committer | craig <craig@11d20701-8431-0410-a711-e3c959e3b870> | 2012-01-01 11:40:09 +0000 |
commit | 7ed83b6c6666eb8b6b104c211ae7e52907350372 (patch) | |
tree | 4430b556abac0ad660a0aacf1887d77f85d8be02 /scribus/smfontcomboh.cpp | |
download | scribus-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.cpp | 98 |
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_); + } +} |