diff options
author | Konstantin Ritt <ritt.ks@gmail.com> | 2013-03-07 12:53:54 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-03-12 16:01:23 +0100 |
commit | 3cd94fcaf81ca5285c481c59b6ed4a720241820e (patch) | |
tree | bce76be41b99456de1fb8f70d820c9353ac24024 /src/widgets/widgets/qfontcombobox.cpp | |
parent | b80d130a5192a15eb53592b31e05be7cbee2c1ef (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.cpp | 37 |
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 |