diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2012-04-23 14:27:02 +0300 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-04-23 15:37:23 +0200 |
commit | e95d94cbbdcb6e7f7f87f1e636a31f21cc5e8563 (patch) | |
tree | a9fefef9dc335fc1aaaf21137b320ce941d87f26 /src/plugins/platforms/windows/qwindowsfontengine.cpp | |
parent | d7a102ac65951d646fc08fcc1bec13ee0cd8f866 (diff) |
Windows: Fix QRawFont loading from data.
The implementation for loading QRawFont from data was missing from
Windows QPA plugin.
For freetype font database, just called the parent QBasicFontDatabse
implementation.
For native font database, ported the implementation from Qt 4.8
qrawfont_win.cpp.
Task-number: QTBUG-24197
Change-Id: Ia784d4cbc4f37c925aa49e53d04faf06a7169a73
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
Diffstat (limited to 'src/plugins/platforms/windows/qwindowsfontengine.cpp')
-rw-r--r-- | src/plugins/platforms/windows/qwindowsfontengine.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/plugins/platforms/windows/qwindowsfontengine.cpp b/src/plugins/platforms/windows/qwindowsfontengine.cpp index e074f79c32..f4bd3f0c53 100644 --- a/src/plugins/platforms/windows/qwindowsfontengine.cpp +++ b/src/plugins/platforms/windows/qwindowsfontengine.cpp @@ -44,6 +44,7 @@ #define _WIN32_WINNT 0x0500 #endif +#include "qwindowsintegration.h" #include "qwindowsfontengine.h" #include "qwindowsnativeimage.h" #include "qwindowscontext.h" @@ -319,6 +320,11 @@ QWindowsFontEngine::~QWindowsFontEngine() if (QWindowsContext::verboseFonts) if (QWindowsContext::verboseFonts) qDebug("%s: font='%s", __FUNCTION__, qPrintable(_name)); + + if (!uniqueFamilyName.isEmpty()) { + QPlatformFontDatabase *pfdb = QWindowsIntegration::instance()->fontDatabase(); + static_cast<QWindowsFontDatabase *>(pfdb)->derefUniqueFont(uniqueFamilyName); + } } HGDIOBJ QWindowsFontEngine::selectDesignFont() const @@ -1142,8 +1148,14 @@ QFontEngine *QWindowsFontEngine::cloneWithSize(qreal pixelSize) const QWindowsContext::instance()->defaultDPI(), false, QStringList(), m_fontEngineData); - if (fontEngine) + if (fontEngine) { fontEngine->fontDef.family = actualFontName; + if (!uniqueFamilyName.isEmpty()) { + static_cast<QWindowsFontEngine *>(fontEngine)->setUniqueFamilyName(uniqueFamilyName); + QPlatformFontDatabase *pfdb = QWindowsIntegration::instance()->fontDatabase(); + static_cast<QWindowsFontDatabase *>(pfdb)->refUniqueFont(uniqueFamilyName); + } + } return fontEngine; } |