diff options
Diffstat (limited to 'src/platformsupport/fontdatabases/winrt')
-rw-r--r-- | src/platformsupport/fontdatabases/winrt/qwinrtfontdatabase.cpp | 28 | ||||
-rw-r--r-- | src/platformsupport/fontdatabases/winrt/qwinrtfontdatabase_p.h | 2 |
2 files changed, 27 insertions, 3 deletions
diff --git a/src/platformsupport/fontdatabases/winrt/qwinrtfontdatabase.cpp b/src/platformsupport/fontdatabases/winrt/qwinrtfontdatabase.cpp index 2a95ca26a9..db58e49bb2 100644 --- a/src/platformsupport/fontdatabases/winrt/qwinrtfontdatabase.cpp +++ b/src/platformsupport/fontdatabases/winrt/qwinrtfontdatabase.cpp @@ -448,19 +448,41 @@ QFontEngine *QWinRTFontDatabase::fontEngine(const QFontDef &fontDef, void *handl return QFontEngineFT::create(fontDef, faceId, fontData); } +QString QWinRTFontDatabase::familyForStyleHint(QFont::StyleHint styleHint) +{ + switch (styleHint) { + case QFont::Times: + return QStringLiteral("Times New Roman"); + case QFont::Courier: + return QStringLiteral("Courier New"); + case QFont::Monospace: + return QStringLiteral("Courier New"); + case QFont::Cursive: + return QStringLiteral("Comic Sans MS"); + case QFont::Fantasy: + return QStringLiteral("Impact"); + case QFont::Decorative: + return QStringLiteral("Old English"); + case QFont::Helvetica: + return QStringLiteral("Segoe UI"); + case QFont::System: + default: + break; + } + return QStringLiteral("Segoe UI"); +} + QStringList QWinRTFontDatabase::fallbacksForFamily(const QString &family, QFont::Style style, QFont::StyleHint styleHint, QChar::Script script) const { Q_UNUSED(style) - Q_UNUSED(styleHint) Q_UNUSED(script) qCDebug(lcQpaFonts) << __FUNCTION__ << family; QStringList result; - if (family == QLatin1String("Helvetica")) - result.append(QStringLiteral("Arial")); + result.append(QWinRTFontDatabase::familyForStyleHint(styleHint)); result.append(QFreeTypeFontDatabase::fallbacksForFamily(family, style, styleHint, script)); return result; } diff --git a/src/platformsupport/fontdatabases/winrt/qwinrtfontdatabase_p.h b/src/platformsupport/fontdatabases/winrt/qwinrtfontdatabase_p.h index 9a2bf00fab..c21f411fff 100644 --- a/src/platformsupport/fontdatabases/winrt/qwinrtfontdatabase_p.h +++ b/src/platformsupport/fontdatabases/winrt/qwinrtfontdatabase_p.h @@ -80,6 +80,8 @@ public: QStringList fallbacksForFamily(const QString &family, QFont::Style style, QFont::StyleHint styleHint, QChar::Script script) const override; void releaseHandle(void *handle) override; + + static QString familyForStyleHint(QFont::StyleHint styleHint); private: QHash<IDWriteFontFile *, FontDescription> m_fonts; QHash<QString, IDWriteFontFamily *> m_fontFamilies; |