cleanup: make members of ThemeInterface non-static

We have a singleton class ThemeInterface, which means that it
is global and exists only once. It's members are static, i.e.
also global. A message from the department of redundancy department?
In any case, that makes no sense. Let's just make these members
local to the class.

I would even rip out the whole singleton thing, since the object
is not accessed anywhere outside from QML. Let's keep it for now.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2020-03-30 21:01:54 +02:00 committed by Dirk Hohndel
parent 7f2eaba574
commit 79bf243ec0
3 changed files with 44 additions and 65 deletions

View file

@ -5,27 +5,6 @@
#include "core/settings/qPrefDisplay.h" #include "core/settings/qPrefDisplay.h"
#include <QFontInfo> #include <QFontInfo>
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;
const QColor BLUE_BACKGROUND_COLOR = "#eff0f1"; const QColor BLUE_BACKGROUND_COLOR = "#eff0f1";
const QColor BLUE_CONTRAST_ACCENT_COLOR = "#FF5722"; const QColor BLUE_CONTRAST_ACCENT_COLOR = "#FF5722";
const QColor BLUE_DARKER_PRIMARY_COLOR = "#303F9f"; const QColor BLUE_DARKER_PRIMARY_COLOR = "#303F9f";
@ -74,7 +53,7 @@ themeInterface *themeInterface::instance()
void themeInterface::setup(QQmlContext *ct) void themeInterface::setup(QQmlContext *ct)
{ {
// Register interface class // Register interface class
ct->setContextProperty("subsurfaceTheme", instance()); ct->setContextProperty("subsurfaceTheme", this);
// get current theme // get current theme
m_currentTheme = qPrefDisplay::theme(); m_currentTheme = qPrefDisplay::theme();
@ -92,8 +71,8 @@ void themeInterface::set_currentTheme(const QString &theme)
{ {
m_currentTheme = theme; m_currentTheme = theme;
qPrefDisplay::set_theme(m_currentTheme); qPrefDisplay::set_theme(m_currentTheme);
instance()->update_theme(); update_theme();
emit instance()->currentThemeChanged(theme); emit currentThemeChanged(theme);
} }
double themeInterface::currentScale() double themeInterface::currentScale()
@ -104,7 +83,7 @@ void themeInterface::set_currentScale(double newScale)
{ {
if (newScale != qPrefDisplay::mobile_scale()) { if (newScale != qPrefDisplay::mobile_scale()) {
qPrefDisplay::set_mobile_scale(newScale); qPrefDisplay::set_mobile_scale(newScale);
emit instance()->currentScaleChanged(qPrefDisplay::mobile_scale()); emit currentScaleChanged(qPrefDisplay::mobile_scale());
} }
// Set current font size // Set current font size
@ -112,16 +91,16 @@ void themeInterface::set_currentScale(double newScale)
// adjust all used font sizes // adjust all used font sizes
m_regularPointSize = m_basePointSize * qPrefDisplay::mobile_scale(); m_regularPointSize = m_basePointSize * qPrefDisplay::mobile_scale();
emit instance()->regularPointSizeChanged(m_regularPointSize); emit regularPointSizeChanged(m_regularPointSize);
m_headingPointSize = m_regularPointSize * 1.2; m_headingPointSize = m_regularPointSize * 1.2;
emit instance()->headingPointSizeChanged(m_headingPointSize); emit headingPointSizeChanged(m_headingPointSize);
m_smallPointSize = m_regularPointSize * 0.8; m_smallPointSize = m_regularPointSize * 0.8;
emit instance()->smallPointSizeChanged(m_smallPointSize); emit smallPointSizeChanged(m_smallPointSize);
m_titlePointSize = m_regularPointSize * 1.5; m_titlePointSize = m_regularPointSize * 1.5;
emit instance()->titlePointSizeChanged(m_titlePointSize); emit titlePointSizeChanged(m_titlePointSize);
} }
void themeInterface::update_theme() void themeInterface::update_theme()
@ -166,16 +145,16 @@ void themeInterface::update_theme()
m_secondaryTextColor = DARK_SECONDARY_TEXT_COLOR; m_secondaryTextColor = DARK_SECONDARY_TEXT_COLOR;
m_textColor = DARK_TEXT_COLOR; m_textColor = DARK_TEXT_COLOR;
} }
emit instance()->backgroundColorChanged(m_backgroundColor); emit backgroundColorChanged(m_backgroundColor);
emit instance()->contrastAccentColorChanged(m_contrastAccentColor); emit contrastAccentColorChanged(m_contrastAccentColor);
emit instance()->darkerPrimaryColorChanged(m_darkerPrimaryColor); emit darkerPrimaryColorChanged(m_darkerPrimaryColor);
emit instance()->darkerPrimaryTextColorChanged(m_darkerPrimaryTextColor); emit darkerPrimaryTextColorChanged(m_darkerPrimaryTextColor);
emit instance()->drawerColorChanged(m_drawerColor); emit drawerColorChanged(m_drawerColor);
emit instance()->lightDrawerColorChanged(m_lightDrawerColor); emit lightDrawerColorChanged(m_lightDrawerColor);
emit instance()->lightPrimaryColorChanged(m_lightPrimaryColor); emit lightPrimaryColorChanged(m_lightPrimaryColor);
emit instance()->lightPrimaryTextColorChanged(m_lightPrimaryTextColor); emit lightPrimaryTextColorChanged(m_lightPrimaryTextColor);
emit instance()->primaryColorChanged(m_primaryColor); emit primaryColorChanged(m_primaryColor);
emit instance()->primaryTextColorChanged(m_primaryTextColor); emit primaryTextColorChanged(m_primaryTextColor);
emit instance()->secondaryTextColorChanged(m_secondaryTextColor); emit secondaryTextColorChanged(m_secondaryTextColor);
emit instance()->textColorChanged(m_textColor); emit textColorChanged(m_textColor);
} }

View file

@ -36,12 +36,12 @@ class themeInterface : public QObject {
public: public:
static themeInterface *instance(); static themeInterface *instance();
static void setup(QQmlContext *ct); void setup(QQmlContext *ct);
static double currentScale(); double currentScale();
public slots: public slots:
static void set_currentTheme(const QString &theme); void set_currentTheme(const QString &theme);
static void set_currentScale(double); void set_currentScale(double);
signals: signals:
void backgroundColorChanged(QColor); void backgroundColorChanged(QColor);
@ -67,27 +67,27 @@ signals:
private: private:
themeInterface() {} themeInterface() {}
static void update_theme(); void update_theme();
static QColor m_backgroundColor; QColor m_backgroundColor;
static QColor m_contrastAccentColor; QColor m_contrastAccentColor;
static QColor m_darkerPrimaryColor; QColor m_darkerPrimaryColor;
static QColor m_darkerPrimaryTextColor; QColor m_darkerPrimaryTextColor;
static QColor m_drawerColor; QColor m_drawerColor;
static QColor m_lightDrawerColor; QColor m_lightDrawerColor;
static QColor m_lightPrimaryColor; QColor m_lightPrimaryColor;
static QColor m_lightPrimaryTextColor; QColor m_lightPrimaryTextColor;
static QColor m_primaryColor; QColor m_primaryColor;
static QColor m_primaryTextColor; QColor m_primaryTextColor;
static QColor m_secondaryTextColor; QColor m_secondaryTextColor;
static QColor m_textColor; QColor m_textColor;
static double m_basePointSize; double m_basePointSize;
static double m_headingPointSize; double m_headingPointSize;
static double m_regularPointSize; double m_regularPointSize;
static double m_smallPointSize; double m_smallPointSize;
static double m_titlePointSize; double m_titlePointSize;
static QString m_currentTheme; QString m_currentTheme;
}; };
#endif #endif

View file

@ -199,7 +199,7 @@ void register_qml_types(QQmlEngine *engine)
// Register qml interface classes // Register qml interface classes
QMLInterface::setup(ct); QMLInterface::setup(ct);
themeInterface::setup(ct); themeInterface::instance()->setup(ct);
} }
REGISTER_TYPE(QMLManager, "QMLManager"); REGISTER_TYPE(QMLManager, "QMLManager");