summaryrefslogtreecommitdiffstats
path: root/mobile-widgets/themeinterface.cpp
diff options
context:
space:
mode:
authorGravatar jan Iversen <jan@casacondor.com>2020-01-28 22:56:20 +0100
committerGravatar Dirk Hohndel <dirk@hohndel.org>2020-02-03 17:30:15 -0800
commit15fbcb655a87120f1302d37e2623ce20f3d7dd75 (patch)
treef95ac19063cc60dc334dfb965c8cf55c96b72a9f /mobile-widgets/themeinterface.cpp
parentf16dc7255610939faaf1eb789a06c8853387ed82 (diff)
downloadsubsurface-15fbcb655a87120f1302d37e2623ce20f3d7dd75.tar.gz
mobile-widgets/themeinterface: make most part static
Make variables and functions static where possible, this is done to prevent different versions of theme with different values. Signed-off-by: jan Iversen <jan@casacondor.com>
Diffstat (limited to 'mobile-widgets/themeinterface.cpp')
-rw-r--r--mobile-widgets/themeinterface.cpp181
1 files changed, 121 insertions, 60 deletions
diff --git a/mobile-widgets/themeinterface.cpp b/mobile-widgets/themeinterface.cpp
index edb998922..d7c9e4456 100644
--- a/mobile-widgets/themeinterface.cpp
+++ b/mobile-widgets/themeinterface.cpp
@@ -4,6 +4,67 @@
#include "core/metrics.h"
#include "core/settings/qPrefDisplay.h"
+QColor themeInterface::m_backgroundColor;
+QColor themeInterface::m_contrastAccentColor;
+QColor themeInterface::m_darkerPrimaryColor;
+QColor themeInterface::m_darkerPrimaryTextColor;
+QColor themeInterface::m_drawerColor;
+QColor themeInterface::m_lightDrawerColor;
+QColor themeInterface::m_lightPrimaryColor;
+QColor themeInterface::m_lightPrimaryTextColor;
+QColor themeInterface::m_primaryColor;
+QColor themeInterface::m_primaryTextColor;
+QColor themeInterface::m_secondaryTextColor;
+QColor themeInterface::m_textColor;
+
+double themeInterface::m_basePointSize;
+double themeInterface::m_headingPointSize;
+double themeInterface::m_regularPointSize;
+double themeInterface::m_smallPointSize;
+double themeInterface::m_titlePointSize;
+
+QString themeInterface::m_currentTheme;
+QString themeInterface::m_iconStyle;
+
+const QColor BLUE_BACKGROUND_COLOR = "#eff0f1";
+const QColor BLUE_CONTRAST_ACCENT_COLOR = "#FF5722";
+const QColor BLUE_DARKER_PRIMARY_COLOR = "#303F9f";
+const QColor BLUE_DARKER_PRIMARY_TEXT_COLOR = "#ECECEC";
+const QColor BLUE_DRAWER_COLOR = "#FFFFFF";
+const QColor BLUE_LIGHT_DRAWER_COLOR = "#FFFFFF";
+const QColor BLUE_LIGHT_PRIMARY_COLOR = "#C5CAE9";
+const QColor BLUE_LIGHT_PRIMARY_TEXT_COLOR = "#212121";
+const QColor BLUE_PRIMARY_COLOR = "#3F51B5";
+const QColor BLUE_PRIMARY_TEXT_COLOR = "#FFFFFF";
+const QColor BLUE_SECONDARY_TEXT_COLOR = "#757575";
+const QColor BLUE_TEXT_COLOR = "#212121";
+
+const QColor PINK_BACKGROUND_COLOR = "#eff0f1";
+const QColor PINK_CONTRAST_ACCENT_COLOR = "#FF5722";
+const QColor PINK_DARKER_PRIMARY_COLOR = "#C2185B";
+const QColor PINK_DARKER_PRIMARY_TEXT_COLOR = "#ECECEC";
+const QColor PINK_DRAWER_COLOR = "#FFFFFF";
+const QColor PINK_LIGHT_DRAWER_COLOR = "#FFFFFF";
+const QColor PINK_LIGHT_PRIMARY_COLOR = "#FFDDF4";
+const QColor PINK_LIGHT_PRIMARY_TEXT_COLOR = "#212121";
+const QColor PINK_PRIMARY_COLOR = "#FF69B4";
+const QColor PINK_PRIMARY_TEXT_COLOR = "#212121";
+const QColor PINK_SECONDARY_TEXT_COLOR = "#757575";
+const QColor PINK_TEXT_COLOR = "#212121";
+
+const QColor DARK_BACKGROUND_COLOR = "#303030";
+const QColor DARK_CONTRAST_ACCENT_COLOR = "#FF5722";
+const QColor DARK_DARKER_PRIMARY_COLOR = "#303F9f";
+const QColor DARK_DARKER_PRIMARY_TEXT_COLOR = "#ECECEC";
+const QColor DARK_DRAWER_COLOR = "#424242";
+const QColor DARK_LIGHT_DRAWER_COLOR = "#FFFFFF";
+const QColor DARK_LIGHT_PRIMARY_COLOR = "#C5CAE9";
+const QColor DARK_LIGHT_PRIMARY_TEXT_COLOR = "#ECECEC";
+const QColor DARK_PRIMARY_COLOR = "#3F51B5";
+const QColor DARK_PRIMARY_TEXT_COLOR = "#ECECEC";
+const QColor DARK_SECONDARY_TEXT_COLOR = "#757575";
+const QColor DARK_TEXT_COLOR = "#ECECEC";
+
themeInterface *themeInterface::instance()
{
static themeInterface *self = new themeInterface;
@@ -16,22 +77,22 @@ void themeInterface::setup(QQmlContext *ct)
ct->setContextProperty("ThemeNew", instance());
// get current theme
- instance()->m_currentTheme = qPrefDisplay::theme();
- instance()->update_theme();
+ m_currentTheme = qPrefDisplay::theme();
+ update_theme();
// check system font
- instance()->m_basePointSize = defaultModelFont().pointSize();
+ m_basePointSize = defaultModelFont().pointSize();
// set initial font size
- instance()->set_currentScale(qPrefDisplay::mobile_scale());
+ set_currentScale(qPrefDisplay::mobile_scale());
}
void themeInterface::set_currentTheme(const QString &theme)
{
m_currentTheme = theme;
qPrefDisplay::set_theme(m_currentTheme);
- update_theme();
- emit currentThemeChanged(theme);
+ instance()->update_theme();
+ emit instance()->currentThemeChanged(theme);
}
double themeInterface::currentScale()
@@ -42,7 +103,7 @@ void themeInterface::set_currentScale(double newScale)
{
if (newScale != qPrefDisplay::mobile_scale()) {
qPrefDisplay::set_mobile_scale(newScale);
- emit currentScaleChanged(qPrefDisplay::mobile_scale());
+ emit instance()->currentScaleChanged(qPrefDisplay::mobile_scale());
}
// Set current font size
@@ -50,74 +111,74 @@ void themeInterface::set_currentScale(double newScale)
// adjust all used font sizes
m_regularPointSize = defaultModelFont().pointSize();
- emit regularPointSizeChanged(m_regularPointSize);
+ emit instance()->regularPointSizeChanged(m_regularPointSize);
m_headingPointSize = m_regularPointSize * 1.2;
- emit headingPointSizeChanged(m_headingPointSize);
+ emit instance()->headingPointSizeChanged(m_headingPointSize);
m_smallPointSize = m_regularPointSize * 0.8;
- emit smallPointSizeChanged(m_smallPointSize);
+ emit instance()->smallPointSizeChanged(m_smallPointSize);
m_titlePointSize = m_regularPointSize * 1.5;
- emit titlePointSizeChanged(m_titlePointSize);
+ emit instance()->titlePointSizeChanged(m_titlePointSize);
}
void themeInterface::update_theme()
{
if (m_currentTheme == "Blue") {
- m_backgroundColor = m_blueBackgroundColor;
- m_contrastAccentColor = m_blueContrastAccentColor;
- m_darkerPrimaryColor = m_blueDarkerPrimaryColor;
- m_darkerPrimaryTextColor = m_blueDarkerPrimaryTextColor;
- m_drawerColor = m_blueDrawerColor;
- m_lightDrawerColor = m_blueDrawerColor;
- m_lightPrimaryColor = m_blueLightPrimaryColor;
- m_lightPrimaryTextColor = m_blueLightPrimaryTextColor;
- m_primaryColor = m_bluePrimaryColor;
- m_primaryTextColor = m_bluePrimaryTextColor;
- m_secondaryTextColor = m_blueSecondaryTextColor;
- m_textColor = m_blueTextColor;
+ m_backgroundColor = BLUE_BACKGROUND_COLOR;
+ m_contrastAccentColor = BLUE_CONTRAST_ACCENT_COLOR;
+ m_darkerPrimaryColor = BLUE_DARKER_PRIMARY_COLOR;
+ m_darkerPrimaryTextColor = BLUE_DARKER_PRIMARY_TEXT_COLOR;
+ m_drawerColor = BLUE_DRAWER_COLOR;
+ m_lightDrawerColor = BLUE_LIGHT_DRAWER_COLOR;
+ m_lightPrimaryColor = BLUE_LIGHT_PRIMARY_COLOR;
+ m_lightPrimaryTextColor = BLUE_LIGHT_PRIMARY_TEXT_COLOR;
+ m_primaryColor = BLUE_PRIMARY_COLOR;
+ m_primaryTextColor = BLUE_PRIMARY_TEXT_COLOR;
+ m_secondaryTextColor = BLUE_SECONDARY_TEXT_COLOR;
+ m_textColor = BLUE_TEXT_COLOR;
m_iconStyle = ":/icons";
} else if (m_currentTheme == "Pink") {
- m_backgroundColor = m_pinkBackgroundColor;
- m_contrastAccentColor = m_pinkContrastAccentColor;
- m_darkerPrimaryColor = m_pinkDarkerPrimaryColor;
- m_darkerPrimaryTextColor = m_pinkDarkerPrimaryTextColor;
- m_drawerColor = m_pinkDrawerColor;
- m_lightDrawerColor = m_pinkDrawerColor;
- m_lightPrimaryColor = m_pinkLightPrimaryColor;
- m_lightPrimaryTextColor = m_pinkLightPrimaryTextColor;
- m_primaryColor = m_pinkPrimaryColor;
- m_primaryTextColor = m_pinkPrimaryTextColor;
- m_secondaryTextColor = m_pinkSecondaryTextColor;
- m_textColor = m_pinkTextColor;
+ m_backgroundColor = PINK_BACKGROUND_COLOR;
+ m_contrastAccentColor = PINK_CONTRAST_ACCENT_COLOR;
+ m_darkerPrimaryColor = PINK_DARKER_PRIMARY_COLOR;
+ m_darkerPrimaryTextColor = PINK_DARKER_PRIMARY_TEXT_COLOR;
+ m_drawerColor = PINK_DRAWER_COLOR;
+ m_lightDrawerColor = PINK_LIGHT_DRAWER_COLOR;
+ m_lightPrimaryColor = PINK_LIGHT_PRIMARY_COLOR;
+ m_lightPrimaryTextColor = PINK_LIGHT_PRIMARY_TEXT_COLOR;
+ m_primaryColor = PINK_PRIMARY_COLOR;
+ m_primaryTextColor = PINK_PRIMARY_TEXT_COLOR;
+ m_secondaryTextColor = PINK_SECONDARY_TEXT_COLOR;
+ m_textColor = PINK_TEXT_COLOR;
m_iconStyle = ":/icons";
} else {
- m_backgroundColor = m_darkBackgroundColor;
- m_contrastAccentColor = m_darkContrastAccentColor;
- m_darkerPrimaryColor = m_darkDarkerPrimaryColor;
- m_darkerPrimaryTextColor = m_darkDarkerPrimaryTextColor;
- m_drawerColor = m_darkDrawerColor;
- m_lightDrawerColor = m_darkDrawerColor;
- m_lightPrimaryColor = m_darkLightPrimaryColor;
- m_lightPrimaryTextColor = m_darkLightPrimaryTextColor;
- m_primaryColor = m_darkPrimaryColor;
- m_primaryTextColor = m_darkPrimaryTextColor;
- m_secondaryTextColor = m_darkSecondaryTextColor;
- m_textColor = m_darkTextColor;
+ m_backgroundColor = DARK_BACKGROUND_COLOR;
+ m_contrastAccentColor = DARK_CONTRAST_ACCENT_COLOR;
+ m_darkerPrimaryColor = DARK_DARKER_PRIMARY_COLOR;
+ m_darkerPrimaryTextColor = DARK_DARKER_PRIMARY_TEXT_COLOR;
+ m_drawerColor = DARK_DRAWER_COLOR;
+ m_lightDrawerColor = DARK_LIGHT_DRAWER_COLOR;
+ m_lightPrimaryColor = DARK_LIGHT_PRIMARY_COLOR;
+ m_lightPrimaryTextColor = DARK_LIGHT_PRIMARY_TEXT_COLOR;
+ m_primaryColor = DARK_PRIMARY_COLOR;
+ m_primaryTextColor = DARK_PRIMARY_TEXT_COLOR;
+ m_secondaryTextColor = DARK_SECONDARY_TEXT_COLOR;
+ m_textColor = DARK_TEXT_COLOR;
m_iconStyle = ":/icons-dark";
}
- emit backgroundColorChanged(m_backgroundColor);
- emit contrastAccentColorChanged(m_contrastAccentColor);
- emit darkerPrimaryColorChanged(m_darkerPrimaryColor);
- emit darkerPrimaryTextColorChanged(m_darkerPrimaryTextColor);
- emit drawerColorChanged(m_drawerColor);
- emit lightDrawerColorChanged(m_lightDrawerColor);
- emit lightPrimaryColorChanged(m_lightPrimaryColor);
- emit lightPrimaryTextColorChanged(m_lightPrimaryTextColor);
- emit primaryColorChanged(m_primaryColor);
- emit primaryTextColorChanged(m_primaryTextColor);
- emit secondaryTextColorChanged(m_secondaryTextColor);
- emit textColorChanged(m_textColor);
- emit iconStyleChanged(m_iconStyle);
+ emit instance()->backgroundColorChanged(m_backgroundColor);
+ emit instance()->contrastAccentColorChanged(m_contrastAccentColor);
+ emit instance()->darkerPrimaryColorChanged(m_darkerPrimaryColor);
+ emit instance()->darkerPrimaryTextColorChanged(m_darkerPrimaryTextColor);
+ emit instance()->drawerColorChanged(m_drawerColor);
+ emit instance()->lightDrawerColorChanged(m_lightDrawerColor);
+ emit instance()->lightPrimaryColorChanged(m_lightPrimaryColor);
+ emit instance()->lightPrimaryTextColorChanged(m_lightPrimaryTextColor);
+ emit instance()->primaryColorChanged(m_primaryColor);
+ emit instance()->primaryTextColorChanged(m_primaryTextColor);
+ emit instance()->secondaryTextColorChanged(m_secondaryTextColor);
+ emit instance()->textColorChanged(m_textColor);
+ emit instance()->iconStyleChanged(m_iconStyle);
}