From 76a00c3d08d582422b5b0b9b38880218054f6e93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=A6=8C=EA=A6=AB=EA=A6=B6=EA=A6=8F=EA=A7=80=EA=A6=A6?= =?UTF-8?q?=EA=A6=BF=EA=A6=A7=EA=A6=AE=EA=A6=91=EA=A6=A9=EA=A6=AD=EA=A7=80?= Date: Thu, 6 Apr 2023 08:24:59 +0800 Subject: Bootstrap is an attached property --- bootstrap.cxx | 51 +++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 43 insertions(+), 8 deletions(-) (limited to 'bootstrap.cxx') diff --git a/bootstrap.cxx b/bootstrap.cxx index bf9a499..7a03b8f 100644 --- a/bootstrap.cxx +++ b/bootstrap.cxx @@ -1,8 +1,11 @@ #include "bootstrap.hxx" Bootstrap::Bootstrap(QObject *parent): - QQmlEngineExtensionPlugin(parent), - m_purpose(None) + QObject(parent), + bs_mode(LightMode), + bs_theme(None), + bs_lightBodyBg("#fff"), + bs_darkBodyBg("#212529") { } @@ -11,14 +14,46 @@ Bootstrap *Bootstrap::qmlAttachedProperties(QObject *object) return new Bootstrap(object); } -Bootstrap::Purpose Bootstrap::purpose() const +Bootstrap::Mode Bootstrap::mode() const { - return m_purpose; + return bs_mode; } -void Bootstrap::setPurpose(Purpose purpose) +void Bootstrap::setMode(Mode mode) { - if (purpose == m_purpose) return; - m_purpose = purpose; - emit purposeChanged(); + if (mode == bs_mode) return; + bs_mode = mode; + emit modeChanged(); + emit bodyBgChanged(); +} + +Bootstrap::Theme Bootstrap::theme() const +{ + return bs_theme; +} + +void Bootstrap::setTheme(Theme theme) +{ + if (theme == bs_theme) return; + bs_theme = theme; + emit themeChanged(); +} + +QColor Bootstrap::bodyBg() const +{ + return bs_mode ? bs_darkBodyBg : bs_lightBodyBg; +} + +void Bootstrap::setLightBodyBg(QColor lightBodyBg) +{ + if (lightBodyBg == bs_lightBodyBg) return; + bs_lightBodyBg = lightBodyBg; + emit bodyBgChanged(); +} + +void Bootstrap::setDarkBodyBg(QColor darkBodyBg) +{ + if (darkBodyBg == bs_darkBodyBg) return; + bs_darkBodyBg = darkBodyBg; + emit bodyBgChanged(); } -- cgit v1.2.3