From 060e0f6628fd185994911307c59f5355acaaf18f Mon Sep 17 00:00:00 2001 From: Gabriel de Dietrich Date: Mon, 7 Mar 2016 14:34:40 -0800 Subject: minimal QPA plugin: Use fontconfig DB if available This makes minimal a bit more useful for apps needing to access QFonts from non-UI environments. Change-Id: Idc5ca13f0c385ab9b4258e11fea7ec886515eea4 Reviewed-by: Friedemann Kleint Reviewed-by: Louai Al-Khanji --- src/plugins/platforms/minimal/minimal.pro | 2 ++ .../platforms/minimal/qminimalintegration.cpp | 25 ++++++++++++++++------ .../platforms/minimal/qminimalintegration.h | 2 +- 3 files changed, 22 insertions(+), 7 deletions(-) (limited to 'src/plugins/platforms/minimal') diff --git a/src/plugins/platforms/minimal/minimal.pro b/src/plugins/platforms/minimal/minimal.pro index d6914026ae..0d31d6605b 100644 --- a/src/plugins/platforms/minimal/minimal.pro +++ b/src/plugins/platforms/minimal/minimal.pro @@ -10,6 +10,8 @@ HEADERS = qminimalintegration.h \ OTHER_FILES += minimal.json +CONFIG += qpa/genericunixfontdatabase + PLUGIN_TYPE = platforms PLUGIN_CLASS_NAME = QMinimalIntegrationPlugin !equals(TARGET, $$QT_DEFAULT_QPA_PLUGIN): PLUGIN_EXTENDS = - diff --git a/src/plugins/platforms/minimal/qminimalintegration.cpp b/src/plugins/platforms/minimal/qminimalintegration.cpp index 45301f4caf..ac819b9282 100644 --- a/src/plugins/platforms/minimal/qminimalintegration.cpp +++ b/src/plugins/platforms/minimal/qminimalintegration.cpp @@ -37,7 +37,14 @@ #include #include #include + +#if defined(Q_OS_WIN) +#include +#elif defined(QT_NO_FONTCONFIG) #include +#else +#include +#endif #if !defined(Q_OS_WIN) #include @@ -62,7 +69,7 @@ static inline unsigned parseOptions(const QStringList ¶mList) } QMinimalIntegration::QMinimalIntegration(const QStringList ¶meters) - : m_dummyFontDatabase(0) + : m_fontDatabase(0) , m_options(parseOptions(parameters)) { if (qEnvironmentVariableIsSet(debugBackingStoreEnvironmentVariable) @@ -81,7 +88,7 @@ QMinimalIntegration::QMinimalIntegration(const QStringList ¶meters) QMinimalIntegration::~QMinimalIntegration() { - delete m_dummyFontDatabase; + delete m_fontDatabase; } bool QMinimalIntegration::hasCapability(QPlatformIntegration::Capability cap) const @@ -104,11 +111,17 @@ public: QPlatformFontDatabase *QMinimalIntegration::fontDatabase() const { - if (m_options & EnableFonts) + if (m_options & EnableFonts) { +#ifndef QT_NO_FONTCONFIG + if (!m_fontDatabase) + m_fontDatabase = new QGenericUnixFontDatabase; +#else return QPlatformIntegration::fontDatabase(); - if (!m_dummyFontDatabase) - m_dummyFontDatabase = new DummyFontDatabase; - return m_dummyFontDatabase; +#endif + } + if (!m_fontDatabase) + m_fontDatabase = new DummyFontDatabase; + return m_fontDatabase; } QPlatformWindow *QMinimalIntegration::createPlatformWindow(QWindow *window) const diff --git a/src/plugins/platforms/minimal/qminimalintegration.h b/src/plugins/platforms/minimal/qminimalintegration.h index eb7d81dc6d..672fecfae0 100644 --- a/src/plugins/platforms/minimal/qminimalintegration.h +++ b/src/plugins/platforms/minimal/qminimalintegration.h @@ -79,7 +79,7 @@ public: static QMinimalIntegration *instance(); private: - mutable QPlatformFontDatabase *m_dummyFontDatabase; + mutable QPlatformFontDatabase *m_fontDatabase; unsigned m_options; }; -- cgit v1.2.3