From 54082b1c3cb5beb49d6820844cbdb96d2f46814f 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 11:01:41 +0800 Subject: BodyBg can be set only from conf for now bs_ prefix changed to bs & then capital letter --- bootstrap.cxx | 53 +++++++++++++++++++++++++---------------------------- 1 file changed, 25 insertions(+), 28 deletions(-) (limited to 'bootstrap.cxx') 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.u.i); + if (!bootstrap) { + toml_free(toml); + return; + } + auto mode = toml_int_in(bootstrap, "Mode"); + if (mode.ok) bsMode = static_cast(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; } -- cgit v1.2.3