summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGabriel de Dietrich <gabriel.dedietrich@qt.io>2016-08-25 16:01:16 -0700
committerGabriel de Dietrich <gabriel.dedietrich@qt.io>2016-12-15 20:58:46 +0000
commit66c2b87547e29a8c31377b6cac959a7d3bd6076b (patch)
treeffb88c7a83763c1a41f35b77f6d304cace72c939 /src
parent1103fffb7ec2156987b1706fb7baddc248bdef15 (diff)
Add platform font database support to 'minimal' QPA plugin
This commit extends 060e0f6628fd185994911307 by loading the platform font database if there's any. Note that this happens at compile time and depends on QtFontDatabaseSupport. Change-Id: Id073fd949765d9439bbb3f66187b15de444d535f Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/platforms/minimal/qminimalintegration.cpp36
-rw-r--r--src/plugins/platforms/minimal/qminimalintegration.h3
2 files changed, 30 insertions, 9 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)
diff --git a/src/plugins/platforms/minimal/qminimalintegration.h b/src/plugins/platforms/minimal/qminimalintegration.h
index 755664d14d..eaa2f228c5 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 &parameters);