diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2018-02-13 22:03:31 +0100 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2018-02-15 08:48:44 +0000 |
commit | 544456ea001c1a2ea7917cc4923222c8dc72f41f (patch) | |
tree | e40389e506776337e9f1ecb79cadce61a9d16e1b /src/imports/controls/imagine | |
parent | 71d5afa10c297db4aabd032f992fb93fbaaf5470 (diff) |
Read :/qtquickcontrols2.conf in QQuickStylePlugin
QQuickTheme is going to be promoted from libQQC2 to libQQT2 so that it
can provide dark and light palettes (and later, icons). The first step
is to refactor out the :/qtquickcontrols2.conf reading code, which
cannot be in style-agnostic libQQT2. Read the conf file in QQuickStyle
Plugin instead. The additional benefit is that we don't need duplicate
name() methods for styles and their themes. Even though QQuickStyle
Plugin's name handling is case-insensitive, QSetting is case-sensitive.
Therefore all QQuickStylePlugin::name() overrides have been updated
to use capital first letter. This name is used to lookup the correct
section in :/qtquickcontrols2.conf.
Task-number: QTBUG-63331
Change-Id: I07b1269d9dbc2c9568e6f22f2da75951fde7b669
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src/imports/controls/imagine')
3 files changed, 16 insertions, 6 deletions
diff --git a/src/imports/controls/imagine/qquickimaginetheme.cpp b/src/imports/controls/imagine/qquickimaginetheme.cpp index 5505e7ce..f6d78cbc 100644 --- a/src/imports/controls/imagine/qquickimaginetheme.cpp +++ b/src/imports/controls/imagine/qquickimaginetheme.cpp @@ -41,11 +41,17 @@ QT_BEGIN_NAMESPACE QQuickImagineTheme::QQuickImagineTheme() - : QQuickTheme(QStringLiteral("Imagine")) +{ +} + +void QQuickImagineTheme::resolveFonts(const QFont &defaultFont) { systemFont.setFamily(QLatin1String("Open Sans")); - systemFont = resolveFont(systemFont); + systemFont = defaultFont.resolve(systemFont); +} +void QQuickImagineTheme::resolvePalettes(const QPalette &defaultPalette) +{ const QColor accentColor = QColor::fromRgb(0x4fc1e9); const QColor windowTextColor = QColor::fromRgb(0x434a54); const QColor disabledWindowTextColor = QColor::fromRgb(0xccd1d9); @@ -59,7 +65,7 @@ QQuickImagineTheme::QQuickImagineTheme() systemPalette.setColor(QPalette::WindowText, windowTextColor); systemPalette.setColor(QPalette::Disabled, QPalette::Text, disabledWindowTextColor); systemPalette.setColor(QPalette::Disabled, QPalette::WindowText, disabledWindowTextColor); - systemPalette = resolvePalette(systemPalette); + systemPalette = defaultPalette.resolve(systemPalette); } const QFont *QQuickImagineTheme::font(QPlatformTheme::Font type) const diff --git a/src/imports/controls/imagine/qquickimaginetheme_p.h b/src/imports/controls/imagine/qquickimaginetheme_p.h index ea3a1cbd..4ec9dfd7 100644 --- a/src/imports/controls/imagine/qquickimaginetheme_p.h +++ b/src/imports/controls/imagine/qquickimaginetheme_p.h @@ -60,6 +60,10 @@ public: const QFont *font(Font type = SystemFont) const override; const QPalette *palette(Palette type = SystemPalette) const override; +protected: + void resolveFonts(const QFont &defaultFont) override; + void resolvePalettes(const QPalette &defaultPalette) override; + private: QFont systemFont; QPalette systemPalette; diff --git a/src/imports/controls/imagine/qtquickcontrols2imaginestyleplugin.cpp b/src/imports/controls/imagine/qtquickcontrols2imaginestyleplugin.cpp index 7aa78075..3ab8a472 100644 --- a/src/imports/controls/imagine/qtquickcontrols2imaginestyleplugin.cpp +++ b/src/imports/controls/imagine/qtquickcontrols2imaginestyleplugin.cpp @@ -67,7 +67,7 @@ public: void initializeEngine(QQmlEngine *engine, const char *uri) override; QString name() const override; - QQuickProxyTheme *createTheme() const override; + QQuickTheme *createTheme() const override; }; QtQuickControls2ImagineStylePlugin::QtQuickControls2ImagineStylePlugin(QObject *parent) : QQuickStylePlugin(parent) @@ -96,10 +96,10 @@ void QtQuickControls2ImagineStylePlugin::initializeEngine(QQmlEngine *engine, co QString QtQuickControls2ImagineStylePlugin::name() const { - return QStringLiteral("imagine"); + return QStringLiteral("Imagine"); } -QQuickProxyTheme *QtQuickControls2ImagineStylePlugin::createTheme() const +QQuickTheme *QtQuickControls2ImagineStylePlugin::createTheme() const { return new QQuickImagineTheme; } |