aboutsummaryrefslogtreecommitdiffstats
path: root/src/imports
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2018-05-16 13:50:35 +0200
committerJ-P Nurmi <jpnurmi@qt.io>2018-05-22 14:20:49 +0000
commitf40dc11886e8130bad5771ed80920e6e72dfc09e (patch)
treea5395a9a7efd47e293901f1d7419a1140806c4d4 /src/imports
parent9338e1285e47060f3998ac19d047e93a11252ffb (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.cpp23
-rw-r--r--src/imports/controls/imagine/qquickimaginetheme_p.h10
-rw-r--r--src/imports/controls/material/qquickmaterialtheme.cpp56
-rw-r--r--src/imports/controls/material/qquickmaterialtheme_p.h13
-rw-r--r--src/imports/controls/qquickdefaulttheme.cpp12
-rw-r--r--src/imports/controls/qquickdefaulttheme_p.h7
-rw-r--r--src/imports/controls/universal/qquickuniversaltheme.cpp24
-rw-r--r--src/imports/controls/universal/qquickuniversaltheme_p.h9
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