diff options
author | Konstantin Ritt <ritt.ks@gmail.com> | 2015-02-16 13:00:53 +0400 |
---|---|---|
committer | Konstantin Ritt <ritt.ks@gmail.com> | 2015-03-20 13:44:14 +0000 |
commit | 4d54fe8d02d57090d772f50dfc1567783d320b5c (patch) | |
tree | 40242be84d4bfa20424761e4e0efaa2eaaf786ff /src/plugins/platforms/windows/qwindowsfontengine.cpp | |
parent | af1a99ebb9a8f2415106ab6bfe85fcd77412e740 (diff) |
Simplify QWindowsFontDatabase::createEngine()
Reduce code duplication and improve readability.
Change-Id: Idf53c80077daa9bac03a72acfd2b6c7e3a24ad97
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Diffstat (limited to 'src/plugins/platforms/windows/qwindowsfontengine.cpp')
-rw-r--r-- | src/plugins/platforms/windows/qwindowsfontengine.cpp | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/plugins/platforms/windows/qwindowsfontengine.cpp b/src/plugins/platforms/windows/qwindowsfontengine.cpp index c25b90e98c..ef2ad110ca 100644 --- a/src/plugins/platforms/windows/qwindowsfontengine.cpp +++ b/src/plugins/platforms/windows/qwindowsfontengine.cpp @@ -264,12 +264,12 @@ int QWindowsFontEngine::getGlyphIndexes(const QChar *str, int numChars, QGlyphLa */ QWindowsFontEngine::QWindowsFontEngine(const QString &name, - HFONT _hfont, LOGFONT lf, + LOGFONT lf, const QSharedPointer<QWindowsFontEngineData> &fontEngineData) : QFontEngine(Win), m_fontEngineData(fontEngineData), _name(name), - hfont(_hfont), + hfont(0), m_logfont(lf), ttf(0), hasOutline(0), @@ -286,6 +286,12 @@ QWindowsFontEngine::QWindowsFontEngine(const QString &name, designAdvancesSize(0) { qCDebug(lcQpaFonts) << __FUNCTION__ << name << lf.lfHeight; + hfont = CreateFontIndirect(&m_logfont); + if (!hfont) { + qErrnoWarning("%s: CreateFontIndirect failed for family '%s'", __FUNCTION__, qPrintable(name)); + hfont = QWindowsFontDatabase::systemFont(); + } + HDC hdc = m_fontEngineData->hdc; SelectObject(hdc, hfont); const BOOL res = GetTextMetrics(hdc, &tm); @@ -1361,11 +1367,8 @@ QFontEngine *QWindowsMultiFontEngine::loadEngine(int at) // Get here if original font is not DirectWrite or DirectWrite creation failed for some // reason - HFONT hfont = CreateFontIndirect(&lf); - if (hfont == 0) - hfont = QWindowsFontDatabase::systemFont(); - return new QWindowsFontEngine(fam, hfont, lf, data); + return new QWindowsFontEngine(fam, lf, data); } bool QWindowsFontEngine::supportsTransformation(const QTransform &transform) const |