diff options
-rw-r--r-- | bootstrap.cxx | 20 | ||||
-rw-r--r-- | bootstrap.hxx | 16 |
2 files changed, 15 insertions, 21 deletions
diff --git a/bootstrap.cxx b/bootstrap.cxx index b7941df..f5d96f1 100644 --- a/bootstrap.cxx +++ b/bootstrap.cxx @@ -3,8 +3,8 @@ Bootstrap::Bootstrap(QObject *parent): QObject(parent), - bsMode(LightMode), bsTheme(None), + bsDarkMode(false), bsLightBodyBg("#fff"), bsDarkBodyBg("#212529") { @@ -17,8 +17,8 @@ Bootstrap::Bootstrap(QObject *parent): toml_free(toml); return; } - auto mode = toml_int_in(bootstrap, "Mode"); - if (mode.ok) bsMode = static_cast<Mode>(mode.u.i); + auto darkMode = toml_bool_in(bootstrap, "DarkMode"); + if (darkMode.ok) bsDarkMode = darkMode.u.b; auto bodyBg = toml_array_in(bootstrap, "BodyBg"); if (bodyBg) { auto lightBodyBg = toml_string_at(bodyBg, 0).u.s; @@ -36,16 +36,16 @@ Bootstrap *Bootstrap::qmlAttachedProperties(QObject *object) return new Bootstrap(object); } -Bootstrap::Mode Bootstrap::mode() const +bool Bootstrap::darkMode() const { - return bsMode; + return bsDarkMode; } -void Bootstrap::setMode(Mode mode) +void Bootstrap::setDarkMode(bool darkMode) { - if (mode == bsMode) return; - bsMode = mode; - emit modeChanged(); + if (darkMode == bsDarkMode) return; + bsDarkMode = darkMode; + emit darkModeChanged(); emit bodyBgChanged(); } @@ -63,5 +63,5 @@ void Bootstrap::setTheme(Theme theme) QColor Bootstrap::bodyBg() const { - return bsMode ? bsDarkBodyBg : bsLightBodyBg; + return bsDarkMode ? bsDarkBodyBg : bsLightBodyBg; } diff --git a/bootstrap.hxx b/bootstrap.hxx index b1c3f9c..e27499f 100644 --- a/bootstrap.hxx +++ b/bootstrap.hxx @@ -13,8 +13,8 @@ class BootstrapPlugin : public QQmlEngineExtensionPlugin class Bootstrap : public QObject { Q_OBJECT - Q_PROPERTY(Mode mode READ mode WRITE setMode NOTIFY modeChanged) Q_PROPERTY(Theme theme READ theme WRITE setTheme NOTIFY themeChanged) + Q_PROPERTY(bool darkMode READ darkMode WRITE setDarkMode NOTIFY darkModeChanged) Q_PROPERTY(QColor bodyBg READ bodyBg NOTIFY bodyBgChanged) QML_ELEMENT QML_UNCREATABLE("Bootstrap is an attached property") @@ -23,11 +23,6 @@ class Bootstrap : public QObject explicit Bootstrap(QObject *parent = nullptr); static Bootstrap *qmlAttachedProperties(QObject *object); - enum Mode { - LightMode, - DarkMode - }; - Q_ENUM(Mode) enum Theme { None, Primary, @@ -41,21 +36,20 @@ class Bootstrap : public QObject Link }; Q_ENUM(Theme) - - Mode mode() const; - void setMode(Mode mode); Theme theme() const; void setTheme(Theme theme); + bool darkMode() const; + void setDarkMode(bool darkMode); QColor bodyBg() const; signals: - void modeChanged(); void themeChanged(); + void darkModeChanged(); void bodyBgChanged(); private: - Mode bsMode; Theme bsTheme; + bool bsDarkMode; QColor bsLightBodyBg; QColor bsDarkBodyBg; }; |