From 865056eec8986bfbdc7f1194ef16ea9db6243742 Mon Sep 17 00:00:00 2001 From: John Preston Date: Tue, 25 Oct 2022 17:50:18 +0400 Subject: [PATCH] Allow locked toggles in SettingsButton. --- ui/widgets/buttons.cpp | 6 ++++++ ui/widgets/buttons.h | 1 + ui/widgets/checkbox.cpp | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/ui/widgets/buttons.cpp b/ui/widgets/buttons.cpp index bd49ebe..7a63bd4 100644 --- a/ui/widgets/buttons.cpp +++ b/ui/widgets/buttons.cpp @@ -736,6 +736,12 @@ bool SettingsButton::toggled() const { return _toggle ? _toggle->checked() : false; } +void SettingsButton::setToggleLocked(bool locked) { + if (_toggle) { + _toggle->setLocked(locked); + } +} + rpl::producer SettingsButton::toggledChanges() const { if (_toggle) { return _toggle->checkedChanges(); diff --git a/ui/widgets/buttons.h b/ui/widgets/buttons.h index bacae3d..5f426d3 100644 --- a/ui/widgets/buttons.h +++ b/ui/widgets/buttons.h @@ -270,6 +270,7 @@ public: rpl::producer toggledChanges() const; rpl::producer toggledValue() const; + void setToggleLocked(bool locked); void setColorOverride(std::optional textColorOverride); void setPaddingOverride(style::margins padding); diff --git a/ui/widgets/checkbox.cpp b/ui/widgets/checkbox.cpp index cbd1cb3..1a22e28 100644 --- a/ui/widgets/checkbox.cpp +++ b/ui/widgets/checkbox.cpp @@ -121,7 +121,7 @@ void ToggleView::paint(QPainter &p, int left, int top, int outerWidth) { p.setBrush(anim::brush(_st->untoggledBg, _st->toggledBg, toggled)); p.drawEllipse(fgRect); - if (_st->xsize > 0) { + if (_locked || _st->xsize > 0) { p.setPen(Qt::NoPen); p.setBrush(fgBrush); if (_locked) {