summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/minimal/qminimalintegration.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/minimal/qminimalintegration.cpp')
-rw-r--r--src/plugins/platforms/minimal/qminimalintegration.cpp36
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 &paramList)
for (const QString &param : 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)