diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2018-05-16 13:50:35 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2018-05-22 14:20:49 +0000 |
commit | f40dc11886e8130bad5771ed80920e6e72dfc09e (patch) | |
tree | a5395a9a7efd47e293901f1d7419a1140806c4d4 /src/imports | |
parent | 9338e1285e47060f3998ac19d047e93a11252ffb (diff) |
QQuickTheme: add setters to make getters non-virtual
This allows us to add more themable attributes (on the side of fonts
and palettes) after the QQuickTheme API has been made public, because
it won't require adding virtuals. Only the resolve() method is virtual.
Task-number: QTBUG-67062
Change-Id: I6a5cc8d15aeaa5a9a0fe9b6d2591077f8822daac
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src/imports')
-rw-r--r-- | src/imports/controls/imagine/qquickimaginetheme.cpp | 23 | ||||
-rw-r--r-- | src/imports/controls/imagine/qquickimaginetheme_p.h | 10 | ||||
-rw-r--r-- | src/imports/controls/material/qquickmaterialtheme.cpp | 56 | ||||
-rw-r--r-- | src/imports/controls/material/qquickmaterialtheme_p.h | 13 | ||||
-rw-r--r-- | src/imports/controls/qquickdefaulttheme.cpp | 12 | ||||
-rw-r--r-- | src/imports/controls/qquickdefaulttheme_p.h | 7 | ||||
-rw-r--r-- | src/imports/controls/universal/qquickuniversaltheme.cpp | 24 | ||||
-rw-r--r-- | src/imports/controls/universal/qquickuniversaltheme_p.h | 9 |
8 files changed, 43 insertions, 111 deletions
diff --git a/src/imports/controls/imagine/qquickimaginetheme.cpp b/src/imports/controls/imagine/qquickimaginetheme.cpp index bfde0c6b..3499b3cd 100644 --- a/src/imports/controls/imagine/qquickimaginetheme.cpp +++ b/src/imports/controls/imagine/qquickimaginetheme.cpp @@ -44,18 +44,17 @@ QQuickImagineTheme::QQuickImagineTheme() { } -void QQuickImagineTheme::resolveFonts(const QFont &defaultFont) +void QQuickImagineTheme::resolve() { + QFont systemFont; systemFont.setFamily(QLatin1String("Open Sans")); - systemFont = defaultFont.resolve(systemFont); -} + setFont(System, 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); + QPalette systemPalette; systemPalette.setColor(QPalette::ButtonText, Qt::white); systemPalette.setColor(QPalette::BrightText, Qt::white); systemPalette.setColor(QPalette::Highlight, accentColor); @@ -65,19 +64,7 @@ void QQuickImagineTheme::resolvePalettes(const QPalette &defaultPalette) systemPalette.setColor(QPalette::WindowText, windowTextColor); systemPalette.setColor(QPalette::Disabled, QPalette::Text, disabledWindowTextColor); systemPalette.setColor(QPalette::Disabled, QPalette::WindowText, disabledWindowTextColor); - systemPalette = defaultPalette.resolve(systemPalette); -} - -const QFont *QQuickImagineTheme::font(Scope scope) const -{ - Q_UNUSED(scope); - return &systemFont; -} - -const QPalette *QQuickImagineTheme::palette(Scope scope) const -{ - Q_UNUSED(scope); - return &systemPalette; + setPalette(System, systemPalette); } QT_END_NAMESPACE diff --git a/src/imports/controls/imagine/qquickimaginetheme_p.h b/src/imports/controls/imagine/qquickimaginetheme_p.h index c663e940..0d569598 100644 --- a/src/imports/controls/imagine/qquickimaginetheme_p.h +++ b/src/imports/controls/imagine/qquickimaginetheme_p.h @@ -58,15 +58,7 @@ public: explicit QQuickImagineTheme(); protected: - const QFont *font(Scope scope) const override; - const QPalette *palette(Scope scope) const override; - - void resolveFonts(const QFont &defaultFont) override; - void resolvePalettes(const QPalette &defaultPalette) override; - -private: - QFont systemFont; - QPalette systemPalette; + void resolve() override; }; QT_END_NAMESPACE diff --git a/src/imports/controls/material/qquickmaterialtheme.cpp b/src/imports/controls/material/qquickmaterialtheme.cpp index 378a5bf7..3ab07f6b 100644 --- a/src/imports/controls/material/qquickmaterialtheme.cpp +++ b/src/imports/controls/material/qquickmaterialtheme.cpp @@ -47,8 +47,16 @@ QQuickMaterialTheme::QQuickMaterialTheme() { } -void QQuickMaterialTheme::resolveFonts(const QFont &defaultFont) +void QQuickMaterialTheme::resolve() { + QFont systemFont; + QFont buttonFont; + QFont toolTipFont; + QFont itemViewFont; + QFont listViewFont; + QFont menuItemFont; + QFont editorFont; + QFont font; font.setFamily(QLatin1String("Roboto")); QString family = QFontInfo(font).family(); @@ -70,58 +78,38 @@ void QQuickMaterialTheme::resolveFonts(const QFont &defaultFont) const bool dense = QQuickMaterialStyle::variant() == QQuickMaterialStyle::Dense; systemFont.setPixelSize(dense ? 13 : 14); - systemFont = defaultFont.resolve(systemFont); + setFont(System, systemFont); // https://material.io/guidelines/components/buttons.html#buttons-style buttonFont.setPixelSize(dense ? 13 : 14); buttonFont.setCapitalization(QFont::AllUppercase); buttonFont.setWeight(QFont::Medium); - buttonFont = defaultFont.resolve(buttonFont); + setFont(Button, buttonFont); + setFont(TabBar, buttonFont); + setFont(ToolBar, buttonFont); // https://material.io/guidelines/components/tooltips.html toolTipFont.setPixelSize(dense ? 10 : 14); toolTipFont.setWeight(QFont::Medium); - toolTipFont = defaultFont.resolve(toolTipFont); + setFont(ToolTip, toolTipFont); itemViewFont.setPixelSize(dense ? 13 : 14); itemViewFont.setWeight(QFont::Medium); - itemViewFont = defaultFont.resolve(itemViewFont); + setFont(ItemView, itemViewFont); // https://material.io/guidelines/components/lists.html#lists-specs listViewFont.setPixelSize(dense ? 13 : 16); - listViewFont = defaultFont.resolve(listViewFont); + setFont(ListView, listViewFont); menuItemFont.setPixelSize(dense ? 13 : 16); - menuItemFont = defaultFont.resolve(menuItemFont); + setFont(Menu, menuItemFont); + setFont(MenuBar, menuItemFont); + setFont(ComboBox, menuItemFont); editorFont.setPixelSize(dense ? 13 : 16); - editorFont = defaultFont.resolve(editorFont); -} - -const QFont *QQuickMaterialTheme::font(Scope scope) const -{ - switch (scope) { - case Button: - case TabBar: - case ToolBar: - return &buttonFont; - case ToolTip: - return &toolTipFont; - case ItemView: - return &itemViewFont; - case ListView: - return &listViewFont; - case Menu: - case MenuBar: - case ComboBox: - return &menuItemFont; - case TextArea: - case TextField: - case SpinBox: - return &editorFont; - default: - return &systemFont; - } + setFont(TextArea, editorFont); + setFont(TextField, editorFont); + setFont(SpinBox, editorFont); } QT_END_NAMESPACE diff --git a/src/imports/controls/material/qquickmaterialtheme_p.h b/src/imports/controls/material/qquickmaterialtheme_p.h index 717990ad..aa50887b 100644 --- a/src/imports/controls/material/qquickmaterialtheme_p.h +++ b/src/imports/controls/material/qquickmaterialtheme_p.h @@ -60,18 +60,7 @@ public: explicit QQuickMaterialTheme(); protected: - const QFont *font(Scope scope) const override; - - void resolveFonts(const QFont &defaultFont) override; - -private: - QFont systemFont; - QFont buttonFont; - QFont toolTipFont; - QFont itemViewFont; - QFont listViewFont; - QFont menuItemFont; - QFont editorFont; + void resolve() override; }; QT_END_NAMESPACE diff --git a/src/imports/controls/qquickdefaulttheme.cpp b/src/imports/controls/qquickdefaulttheme.cpp index 40ed269a..a988c10b 100644 --- a/src/imports/controls/qquickdefaulttheme.cpp +++ b/src/imports/controls/qquickdefaulttheme.cpp @@ -42,8 +42,10 @@ QQuickDefaultTheme::QQuickDefaultTheme() { } -void QQuickDefaultTheme::resolvePalettes(const QPalette &defaultPalette) +void QQuickDefaultTheme::resolve() { + QPalette systemPalette; + systemPalette.setColor(QPalette::Base, QColor::fromRgba(0xFFFFFFFF)); systemPalette.setColor(QPalette::Disabled, QPalette::Base, QColor::fromRgba(0xFFD6D6D6)); @@ -83,13 +85,7 @@ void QQuickDefaultTheme::resolvePalettes(const QPalette &defaultPalette) systemPalette.setColor(QPalette::WindowText, QColor::fromRgba(0xFF26282A)); systemPalette.setColor(QPalette::Disabled, QPalette::WindowText, QColor::fromRgba(0xFFBDBEBF)); - systemPalette = defaultPalette.resolve(systemPalette); -} - -const QPalette *QQuickDefaultTheme::palette(Scope scope) const -{ - Q_UNUSED(scope); - return &systemPalette; + setPalette(System, systemPalette); } QT_END_NAMESPACE diff --git a/src/imports/controls/qquickdefaulttheme_p.h b/src/imports/controls/qquickdefaulttheme_p.h index 1d5897bd..f372b111 100644 --- a/src/imports/controls/qquickdefaulttheme_p.h +++ b/src/imports/controls/qquickdefaulttheme_p.h @@ -58,12 +58,7 @@ public: explicit QQuickDefaultTheme(); protected: - const QPalette *palette(Scope scope) const override; - - void resolvePalettes(const QPalette &defaultPalette) override; - -private: - QPalette systemPalette; + void resolve() override; }; QT_END_NAMESPACE diff --git a/src/imports/controls/universal/qquickuniversaltheme.cpp b/src/imports/controls/universal/qquickuniversaltheme.cpp index 0f85261d..6485afbc 100644 --- a/src/imports/controls/universal/qquickuniversaltheme.cpp +++ b/src/imports/controls/universal/qquickuniversaltheme.cpp @@ -45,8 +45,12 @@ QQuickUniversalTheme::QQuickUniversalTheme() { } -void QQuickUniversalTheme::resolveFonts(const QFont &defaultFont) +void QQuickUniversalTheme::resolve() { + QFont systemFont; + QFont groupBoxTitleFont; + QFont tabButtonFont; + const QFont font(QLatin1String("Segoe UI")); if (QFontInfo(font).family() == QLatin1String("Segoe UI")) { const QString family = font.family(); @@ -56,27 +60,15 @@ void QQuickUniversalTheme::resolveFonts(const QFont &defaultFont) } systemFont.setPixelSize(15); - systemFont = defaultFont.resolve(systemFont); + setFont(System, systemFont); groupBoxTitleFont.setPixelSize(15); groupBoxTitleFont.setWeight(QFont::DemiBold); - groupBoxTitleFont = defaultFont.resolve(groupBoxTitleFont); + setFont(GroupBox, groupBoxTitleFont); tabButtonFont.setPixelSize(24); tabButtonFont.setWeight(QFont::Light); - tabButtonFont = defaultFont.resolve(tabButtonFont); -} - -const QFont *QQuickUniversalTheme::font(Scope scope) const -{ - switch (scope) { - case GroupBox: - return &groupBoxTitleFont; - case TabBar: - return &tabButtonFont; - default: - return &systemFont; - } + setFont(TabBar, tabButtonFont); } QT_END_NAMESPACE diff --git a/src/imports/controls/universal/qquickuniversaltheme_p.h b/src/imports/controls/universal/qquickuniversaltheme_p.h index 5782ff93..f0f18db5 100644 --- a/src/imports/controls/universal/qquickuniversaltheme_p.h +++ b/src/imports/controls/universal/qquickuniversaltheme_p.h @@ -59,14 +59,7 @@ public: explicit QQuickUniversalTheme(); protected: - const QFont *font(Scope scope) const override; - - void resolveFonts(const QFont &defaultFont) override; - -private: - QFont systemFont; - QFont groupBoxTitleFont; - QFont tabButtonFont; + void resolve() override; }; QT_END_NAMESPACE |