diff options
Diffstat (limited to 'src/plugins/platforms/minimal/qminimalintegration.cpp')
-rw-r--r-- | src/plugins/platforms/minimal/qminimalintegration.cpp | 36 |
1 files changed, 28 insertions, 8 deletions
diff --git a/src/plugins/platforms/minimal/qminimalintegration.cpp b/src/plugins/platforms/minimal/qminimalintegration.cpp index 03c72502cb..aa0037f187 100644 --- a/src/plugins/platforms/minimal/qminimalintegration.cpp +++ b/src/plugins/platforms/minimal/qminimalintegration.cpp @@ -44,12 +44,19 @@ #include <QtGui/private/qguiapplication_p.h> #include <qpa/qplatformwindow.h> -#if defined(Q_OS_WIN) #include <QtFontDatabaseSupport/private/qbasicfontdatabase_p.h> +#if defined(Q_OS_WINRT) +# include <QtFontDatabaseSupport/private/qwinrtfontdatabase_p.h> +#elif defined(Q_OS_WIN) +# include <QtFontDatabaseSupport/private/qwindowsfontdatabase_p.h> +# if QT_CONFIG(freetype) +# include <QtFontDatabaseSupport/private/qwindowsfontdatabase_ft_p.h> +# endif +#elif defined(Q_OS_DARWIN) +# include <QtFontDatabaseSupport/private/qcoretextfontdatabase_p.h> #elif QT_CONFIG(fontconfig) -#include <QtFontDatabaseSupport/private/qgenericunixfontdatabase_p.h> -#else -#include <qpa/qplatformfontdatabase.h> +# include <QtFontDatabaseSupport/private/qgenericunixfontdatabase_p.h> +# include <qpa/qplatformfontdatabase.h> #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) |