diff options
author | ꦌꦫꦶꦏ꧀ꦦꦿꦧꦮꦑꦩꦭ꧀ <erik@darapsa.co.id> | 2023-04-06 11:01:41 +0800 |
---|---|---|
committer | ꦌꦫꦶꦏ꧀ꦦꦿꦧꦮꦑꦩꦭ꧀ <erik@darapsa.co.id> | 2023-04-06 11:01:41 +0800 |
commit | 54082b1c3cb5beb49d6820844cbdb96d2f46814f (patch) | |
tree | 851ac155136fe2af7307326914dc605e9b7b0a4e /bootstrap.cxx | |
parent | 03399dffb1d96dec521d24d2c31a90b665194b97 (diff) |
BodyBg can be set only from conf for now
bs_ prefix changed to bs & then capital letter
Diffstat (limited to 'bootstrap.cxx')
-rw-r--r-- | bootstrap.cxx | 53 |
1 files changed, 25 insertions, 28 deletions
diff --git a/bootstrap.cxx b/bootstrap.cxx index 433ccfd..b7941df 100644 --- a/bootstrap.cxx +++ b/bootstrap.cxx @@ -3,19 +3,30 @@ Bootstrap::Bootstrap(QObject *parent): QObject(parent), - bs_mode(LightMode), - bs_theme(None), - bs_lightBodyBg("#fff"), - bs_darkBodyBg("#212529") + bsMode(LightMode), + bsTheme(None), + bsLightBodyBg("#fff"), + bsDarkBodyBg("#212529") { QFile conf{QStringLiteral(":/qtquickcontrols2.conf")}; if (!conf.open(QIODevice::ReadOnly | QIODevice::Text)) return; auto toml = toml_parse(conf.readAll().data(), nullptr, 0); conf.close(); auto bootstrap = toml_table_in(toml, "Bootstrap"); - if (bootstrap) { - auto mode = toml_int_in(bootstrap, "Mode"); - if (mode.ok) bs_mode = static_cast<Mode>(mode.u.i); + if (!bootstrap) { + toml_free(toml); + return; + } + auto mode = toml_int_in(bootstrap, "Mode"); + if (mode.ok) bsMode = static_cast<Mode>(mode.u.i); + auto bodyBg = toml_array_in(bootstrap, "BodyBg"); + if (bodyBg) { + auto lightBodyBg = toml_string_at(bodyBg, 0).u.s; + bsLightBodyBg = QColor{lightBodyBg}; + free(lightBodyBg); + auto darkBodyBg = toml_string_at(bodyBg, 1).u.s; + bsDarkBodyBg = QColor{darkBodyBg}; + free(darkBodyBg); } toml_free(toml); } @@ -27,44 +38,30 @@ Bootstrap *Bootstrap::qmlAttachedProperties(QObject *object) Bootstrap::Mode Bootstrap::mode() const { - return bs_mode; + return bsMode; } void Bootstrap::setMode(Mode mode) { - if (mode == bs_mode) return; - bs_mode = mode; + if (mode == bsMode) return; + bsMode = mode; emit modeChanged(); emit bodyBgChanged(); } Bootstrap::Theme Bootstrap::theme() const { - return bs_theme; + return bsTheme; } void Bootstrap::setTheme(Theme theme) { - if (theme == bs_theme) return; - bs_theme = theme; + if (theme == bsTheme) return; + bsTheme = 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(); + return bsMode ? bsDarkBodyBg : bsLightBodyBg; } |