diff --git a/src/plugins/platforms/minimal/qminimalintegration.cpp b/src/plugins/platforms/minimal/qminimalintegration.cpp index 03c72502cb2..aa0037f1877 100644 --- a/src/plugins/platforms/minimal/qminimalintegration.cpp +++ b/src/plugins/platforms/minimal/qminimalintegration.cpp @@ -44,12 +44,19 @@ #include #include -#if defined(Q_OS_WIN) #include +#if defined(Q_OS_WINRT) +# include +#elif defined(Q_OS_WIN) +# include +# if QT_CONFIG(freetype) +# include +# endif +#elif defined(Q_OS_DARWIN) +# include #elif QT_CONFIG(fontconfig) -#include -#else -#include +# include +# include #endif #if !defined(Q_OS_WIN) @@ -70,6 +77,8 @@ static inline unsigned parseOptions(const QStringList ¶mList) for (const QString ¶m : paramList) { if (param == QLatin1String("enable_fonts")) options |= QMinimalIntegration::EnableFonts; + else if (param == QLatin1String("freetype")) + options |= QMinimalIntegration::FreeTypeFontDatabase; } return options; } @@ -117,12 +126,23 @@ public: QPlatformFontDatabase *QMinimalIntegration::fontDatabase() const { - if (m_options & EnableFonts) { + if (!m_fontDatabase && (m_options & EnableFonts)) { #if QT_CONFIG(fontconfig) - if (!m_fontDatabase) - m_fontDatabase = new QGenericUnixFontDatabase; + m_fontDatabase = new QGenericUnixFontDatabase; +#elif defined(Q_OS_WINRT) + m_fontDatabase = new QWinRTFontDatabase; +#elif defined(Q_OS_WIN) + if (m_options & FreeTypeFontDatabase) { +# if QT_CONFIG(freetype) + m_fontDatabase = new QWindowsFontDatabaseFT; +# endif // freetype + } else { + m_fontDatabase = new QWindowsFontDatabase; + } +#elif defined(Q_OS_DARWIN) + m_fontDatabase = new QCoreTextFontDatabase; #else - return QPlatformIntegration::fontDatabase(); + m_fontDatabase = QPlatformIntegration::fontDatabase(); #endif } if (!m_fontDatabase) diff --git a/src/plugins/platforms/minimal/qminimalintegration.h b/src/plugins/platforms/minimal/qminimalintegration.h index 755664d14d3..eaa2f228c55 100644 --- a/src/plugins/platforms/minimal/qminimalintegration.h +++ b/src/plugins/platforms/minimal/qminimalintegration.h @@ -67,7 +67,8 @@ class QMinimalIntegration : public QPlatformIntegration public: enum Options { // Options to be passed on command line or determined from environment DebugBackingStore = 0x1, - EnableFonts = 0x2 + EnableFonts = 0x2, + FreeTypeFontDatabase = 0x4 }; explicit QMinimalIntegration(const QStringList ¶meters);