diff options
author | Konstantin Ritt <ritt.ks@gmail.com> | 2015-05-14 02:48:42 +0400 |
---|---|---|
committer | Konstantin Ritt <ritt.ks@gmail.com> | 2015-07-31 09:49:21 +0000 |
commit | 735cd0ccf3e51f9b3f0e9d30df08899ae54bf7ab (patch) | |
tree | 3005863e4b323d3f8208d1a69ac1bc2b8897c5b2 /src/gui/text/qfontengine.cpp | |
parent | 76ce564674439ea05c35aadc149c86fdbd844d7f (diff) |
[QFontDatabase] Defer the fallback families list initialization
Use the same trick the WebKit related path has used for years:
if there is no explicit list that takes a precedence over the
default one (i.e. QFont("Arial,SimHei")), then defer the fallback
families list initialization until it gets requested.
Change-Id: If5a74294bdebb24865c619bc0d7328b3e706de76
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
Diffstat (limited to 'src/gui/text/qfontengine.cpp')
-rw-r--r-- | src/gui/text/qfontengine.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/gui/text/qfontengine.cpp b/src/gui/text/qfontengine.cpp index 6f5d178655..f9d924d10a 100644 --- a/src/gui/text/qfontengine.cpp +++ b/src/gui/text/qfontengine.cpp @@ -1590,15 +1590,15 @@ QFontEngineMulti::~QFontEngineMulti() } } +QStringList qt_fallbacksForFamily(const QString &family, QFont::Style style, QFont::StyleHint styleHint, QChar::Script script); + void QFontEngineMulti::ensureFallbackFamiliesQueried() { - if (QPlatformIntegration *integration = QGuiApplicationPrivate::platformIntegration()) { - const QStringList fallbackFamilies = integration->fontDatabase()->fallbacksForFamily(fontDef.family, - QFont::Style(fontDef.style), - QFont::AnyStyle, - QChar::Script(m_script)); - setFallbackFamiliesList(fallbackFamilies); - } + QFont::StyleHint styleHint = QFont::StyleHint(fontDef.styleHint); + if (styleHint == QFont::AnyStyle && fontDef.fixedPitch) + styleHint = QFont::TypeWriter; + + setFallbackFamiliesList(qt_fallbacksForFamily(fontDef.family, QFont::Style(fontDef.style), styleHint, QChar::Script(m_script))); } void QFontEngineMulti::setFallbackFamiliesList(const QStringList &fallbackFamilies) |