summaryrefslogtreecommitdiffstats
path: root/src/gui/text/qfontengine.cpp
diff options
context:
space:
mode:
authorKonstantin Ritt <ritt.ks@gmail.com>2015-05-14 02:48:42 +0400
committerKonstantin Ritt <ritt.ks@gmail.com>2015-07-31 09:49:21 +0000
commit735cd0ccf3e51f9b3f0e9d30df08899ae54bf7ab (patch)
tree3005863e4b323d3f8208d1a69ac1bc2b8897c5b2 /src/gui/text/qfontengine.cpp
parent76ce564674439ea05c35aadc149c86fdbd844d7f (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.cpp14
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)