summaryrefslogtreecommitdiffstats
path: root/src/widgets/widgets/qfontcombobox.cpp
diff options
context:
space:
mode:
authorKonstantin Ritt <ritt.ks@gmail.com>2013-03-07 12:53:54 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-03-12 16:01:23 +0100
commit3cd94fcaf81ca5285c481c59b6ed4a720241820e (patch)
treebce76be41b99456de1fb8f70d820c9353ac24024 /src/widgets/widgets/qfontcombobox.cpp
parentb80d130a5192a15eb53592b31e05be7cbee2c1ef (diff)
QFontComboBox: Minor code optimization & simplification
Change-Id: If536a0b8721bdc562b505fc94a9fe4f77cc619de Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'src/widgets/widgets/qfontcombobox.cpp')
-rw-r--r--src/widgets/widgets/qfontcombobox.cpp37
1 files changed, 12 insertions, 25 deletions
diff --git a/src/widgets/widgets/qfontcombobox.cpp b/src/widgets/widgets/qfontcombobox.cpp
index 1b9a08b0d2..4adb188212 100644
--- a/src/widgets/widgets/qfontcombobox.cpp
+++ b/src/widgets/widgets/qfontcombobox.cpp
@@ -56,46 +56,33 @@ QT_BEGIN_NAMESPACE
static QFontDatabase::WritingSystem writingSystemForFont(const QFont &font, bool *hasLatin)
{
- *hasLatin = true;
-
QList<QFontDatabase::WritingSystem> writingSystems = QFontDatabase().writingSystems(font.family());
// qDebug() << font.family() << writingSystems;
// this just confuses the algorithm below. Vietnamese is Latin with lots of special chars
- writingSystems.removeAll(QFontDatabase::Vietnamese);
+ writingSystems.removeOne(QFontDatabase::Vietnamese);
+ *hasLatin = writingSystems.removeOne(QFontDatabase::Latin);
+
+ if (writingSystems.isEmpty())
+ return QFontDatabase::Any;
- QFontDatabase::WritingSystem system = QFontDatabase::Any;
+ QFontDatabase::WritingSystem system = writingSystems.last();
- if (!writingSystems.contains(QFontDatabase::Latin)) {
- *hasLatin = false;
+ if (!*hasLatin) {
// we need to show something
- if (writingSystems.count())
- system = writingSystems.last();
- } else {
- writingSystems.removeAll(QFontDatabase::Latin);
+ return system;
}
- if (writingSystems.isEmpty())
+ if (writingSystems.count() == 1 && system > QFontDatabase::Cyrillic)
return system;
- if (writingSystems.count() == 1 && writingSystems.at(0) > QFontDatabase::Cyrillic) {
- system = writingSystems.at(0);
+ if (writingSystems.count() <= 2 && system > QFontDatabase::Armenian && system < QFontDatabase::Vietnamese)
return system;
- }
- if (writingSystems.count() <= 2
- && writingSystems.last() > QFontDatabase::Armenian
- && writingSystems.last() < QFontDatabase::Vietnamese) {
- system = writingSystems.last();
+ if (writingSystems.count() <= 5 && system >= QFontDatabase::SimplifiedChinese && system <= QFontDatabase::Korean)
return system;
- }
- if (writingSystems.count() <= 5
- && writingSystems.last() >= QFontDatabase::SimplifiedChinese
- && writingSystems.last() <= QFontDatabase::Korean)
- system = writingSystems.last();
-
- return system;
+ return QFontDatabase::Any;
}
class QFontFamilyDelegate : public QAbstractItemDelegate