diff options
Diffstat (limited to 'src/plugins/platforms/minimal/qminimalintegration.cpp')
-rw-r--r-- | src/plugins/platforms/minimal/qminimalintegration.cpp | 34 |
1 files changed, 27 insertions, 7 deletions
diff --git a/src/plugins/platforms/minimal/qminimalintegration.cpp b/src/plugins/platforms/minimal/qminimalintegration.cpp index ca33689cd7..0c04608fca 100644 --- a/src/plugins/platforms/minimal/qminimalintegration.cpp +++ b/src/plugins/platforms/minimal/qminimalintegration.cpp @@ -54,11 +54,17 @@ # endif #elif defined(Q_OS_DARWIN) # include <QtFontDatabaseSupport/private/qcoretextfontdatabase_p.h> -#elif QT_CONFIG(fontconfig) +#endif + +#if QT_CONFIG(fontconfig) # include <QtFontDatabaseSupport/private/qgenericunixfontdatabase_p.h> # include <qpa/qplatformfontdatabase.h> #endif +#if QT_CONFIG(freetype) +#include <QtFontDatabaseSupport/private/qfontengine_ft_p.h> +#endif + #if !defined(Q_OS_WIN) #include <QtEventDispatcherSupport/private/qgenericunixeventdispatcher_p.h> #elif defined(Q_OS_WINRT) @@ -81,6 +87,8 @@ static inline unsigned parseOptions(const QStringList ¶mList) options |= QMinimalIntegration::EnableFonts; else if (param == QLatin1String("freetype")) options |= QMinimalIntegration::FreeTypeFontDatabase; + else if (param == QLatin1String("fontconfig")) + options |= QMinimalIntegration::FontconfigDatabase; } return options; } @@ -123,15 +131,13 @@ bool QMinimalIntegration::hasCapability(QPlatformIntegration::Capability cap) co class DummyFontDatabase : public QPlatformFontDatabase { public: - virtual void populateFontDatabase() Q_DECL_OVERRIDE {} + virtual void populateFontDatabase() override {} }; QPlatformFontDatabase *QMinimalIntegration::fontDatabase() const { if (!m_fontDatabase && (m_options & EnableFonts)) { -#if QT_CONFIG(fontconfig) - m_fontDatabase = new QGenericUnixFontDatabase; -#elif defined(Q_OS_WINRT) +#if defined(Q_OS_WINRT) m_fontDatabase = new QWinRTFontDatabase; #elif defined(Q_OS_WIN) if (m_options & FreeTypeFontDatabase) { @@ -142,10 +148,24 @@ QPlatformFontDatabase *QMinimalIntegration::fontDatabase() const m_fontDatabase = new QWindowsFontDatabase; } #elif defined(Q_OS_DARWIN) - m_fontDatabase = new QCoreTextFontDatabaseEngineFactory<QCoreTextFontEngine>; + if (!(m_options & FontconfigDatabase)) { + if (m_options & FreeTypeFontDatabase) { +# if QT_CONFIG(freetype) + m_fontDatabase = new QCoreTextFontDatabaseEngineFactory<QFontEngineFT>; +# endif // freetype + } else { + m_fontDatabase = new QCoreTextFontDatabaseEngineFactory<QCoreTextFontEngine>; + } + } +#endif + + if (!m_fontDatabase) { +#if QT_CONFIG(fontconfig) + m_fontDatabase = new QGenericUnixFontDatabase; #else - m_fontDatabase = QPlatformIntegration::fontDatabase(); + m_fontDatabase = QPlatformIntegration::fontDatabase(); #endif + } } if (!m_fontDatabase) m_fontDatabase = new DummyFontDatabase; |