From 77952289f8176703eef7134262c6fd6d0d835dd6 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Wed, 21 Oct 2026 10:23:05 +0200 Subject: Switch: never set checked itself, report the new state instead The shared Switch flipped its own checked on click, which replaced the caller's binding with a constant. Every use binds checked, so after a click the switch stopped following its source: Discard on a settings draft reverted the value and left the switch showing the click. Four status rows and the headphones panel each carried a resync workaround for it. toggled now carries the new state and the switch moves only when the caller's binding does. Handlers that read checked as the new value take the argument instead; the workarounds are gone. Co-Authored-By: Claude Opus 5.5 --- desktop/modules/qtmaildir/BoolSetting.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'desktop/modules/qtmaildir/BoolSetting.qml') diff --git a/desktop/modules/qtmaildir/BoolSetting.qml b/desktop/modules/qtmaildir/BoolSetting.qml index a6a7030..4f41944 100644 --- a/desktop/modules/qtmaildir/BoolSetting.qml +++ b/desktop/modules/qtmaildir/BoolSetting.qml @@ -42,7 +42,7 @@ Item { id: sw anchors { left: lbl.right; leftMargin: 8; verticalCenter: parent.verticalCenter } checked: s.on - onToggled: s.store.set(s.section, s.key, checked ? "true" : "false") + onToggled: on => s.store.set(s.section, s.key, on ? "true" : "false") } Text { anchors { left: sw.right; leftMargin: 10; right: parent.right; verticalCenter: parent.verticalCenter } -- cgit v1.2.3