diff options
author | Robin Burchell <robin.burchell@viroteck.net> | 2015-02-13 21:56:33 +0100 |
---|---|---|
committer | Konstantin Ritt <ritt.ks@gmail.com> | 2015-02-15 03:49:33 +0000 |
commit | 5a23fcfa8a303d6bd796b35d9a914a2ca4005f99 (patch) | |
tree | 381e0c465e05409ba2956dbee2b32239abcc0dad | |
parent | 071b28675606633f41c58edcc27c0b514e9d6c33 (diff) |
QFontDatabase: Optimize QtFontStyle::Key::Key().
Similar to 46b2c74eaf95fc607518988c7958574c7f70f5ae, skip the translations at
all costs. They allocate, and are very expensive. To ensure we try harder to
skip them, also avoid checking styles at all unless one has been provided.
This increases delegates_text from 209 items to 221 items for me.
Change-Id: Ia18b07de7b48cee356e9506a0c5d7129621d79d2
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
-rw-r--r-- | src/gui/text/qfontdatabase.cpp | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/src/gui/text/qfontdatabase.cpp b/src/gui/text/qfontdatabase.cpp index 77d134cb28..127a2efa8c 100644 --- a/src/gui/text/qfontdatabase.cpp +++ b/src/gui/text/qfontdatabase.cpp @@ -251,12 +251,19 @@ QtFontStyle::Key::Key(const QString &styleString) { weight = getFontWeight(styleString); - if (styleString.contains(QLatin1String("Italic")) - || styleString.contains(QCoreApplication::translate("QFontDatabase", "Italic"))) - style = QFont::StyleItalic; - else if (styleString.contains(QLatin1String("Oblique")) - || styleString.contains(QCoreApplication::translate("QFontDatabase", "Oblique"))) - style = QFont::StyleOblique; + if (!styleString.isEmpty()) { + // First the straightforward no-translation checks, these are fast. + if (styleString.contains(QLatin1String("Italic"))) + style = QFont::StyleItalic; + else if (styleString.contains(QLatin1String("Oblique"))) + style = QFont::StyleOblique; + + // Then the translation checks. These aren't as fast. + else if (styleString.contains(QCoreApplication::translate("QFontDatabase", "Italic"))) + style = QFont::StyleItalic; + else if (styleString.contains(QCoreApplication::translate("QFontDatabase", "Oblique"))) + style = QFont::StyleOblique; + } } QtFontSize *QtFontStyle::pixelSize(unsigned short size, bool add) |