From fffa899345df967ed815104cf88de8466d97b374 Mon Sep 17 00:00:00 2001 From: ivan tkachenko Date: Sat, 9 Jul 2022 21:45:37 +0300 Subject: [PATCH] [applets/pager] Fix button group management on configuration page More declarative and centralized approach fixes the case when the "Text display:" section may have no radio buttons selected. Amends c50e4b987dc365d741880794ee6f2924065a87a6. BUG: 456525 FIXED-IN: 5.24.7 5.25.4 5.26 (cherry picked from commit 4d835be8808b6372d69c424a66c3c7a1493cd6c3) --- .../package/contents/ui/configGeneral.qml | 48 ++++--------------- 1 file changed, 10 insertions(+), 38 deletions(-) diff --git a/applets/pager/package/contents/ui/configGeneral.qml b/applets/pager/package/contents/ui/configGeneral.qml index b66620e16..c5404b9e1 100644 --- a/applets/pager/package/contents/ui/configGeneral.qml +++ b/applets/pager/package/contents/ui/configGeneral.qml @@ -25,39 +25,6 @@ Kirigami.FormLayout { property alias cfg_showOnlyCurrentScreen: showOnlyCurrentScreen.checked property alias cfg_wrapPage: wrapPage.checked - onCfg_displayedTextChanged: { - switch (cfg_displayedText) { - case 0: - displayedTextGroup.checkedButton = desktopNumberRadio; - break; - case 1: - displayedTextGroup.checkedButton = desktopNameRadio; - break; - default: - case 2: - displayedTextGroup.checkedButton = noTextRadio; - break; - } - } - - onCfg_currentDesktopSelectedChanged: { - switch (cfg_currentDesktopSelected) { - case 0: - currentDesktopSelectedGroup.checkedButton = doesNothingRadio; - break; - case 1: - currentDesktopSelectedGroup.checkedButton = showsDesktopRadio; - break; - default: - break; - } - } - - Component.onCompleted: { - cfg_currentDesktopSelectedChanged(); - cfg_displayedTextChanged(); - } - QtControls.ButtonGroup { id: displayedTextGroup } @@ -113,19 +80,22 @@ Kirigami.FormLayout { QtControls.ButtonGroup.group: displayedTextGroup text: i18n("No text") - onCheckedChanged: if (checked) cfg_displayedText = 2; + checked: cfg_displayedText === 2 + onToggled: if (checked) cfg_displayedText = 2; } QtControls.RadioButton { id: desktopNumberRadio QtControls.ButtonGroup.group: displayedTextGroup text: isActivityPager ? i18n("Activity number") : i18n("Desktop number") - onCheckedChanged: if (checked) cfg_displayedText = 0; + checked: cfg_displayedText === 0 + onToggled: if (checked) cfg_displayedText = 0; } QtControls.RadioButton { id: desktopNameRadio QtControls.ButtonGroup.group: displayedTextGroup text: isActivityPager ? i18n("Activity name") : i18n("Desktop name") - onCheckedChanged: if (checked) cfg_displayedText = 1; + checked: cfg_displayedText === 1 + onToggled: if (checked) cfg_displayedText = 1; } @@ -141,12 +111,14 @@ Kirigami.FormLayout { QtControls.ButtonGroup.group: currentDesktopSelectedGroup text: i18n("Does nothing") - onCheckedChanged: if (checked) cfg_currentDesktopSelected = 0; + checked: cfg_currentDesktopSelected === 0 + onToggled: if (checked) cfg_currentDesktopSelected = 0; } QtControls.RadioButton { id: showsDesktopRadio QtControls.ButtonGroup.group: currentDesktopSelectedGroup text: i18n("Shows the desktop") - onCheckedChanged: if (checked) cfg_currentDesktopSelected = 1; + checked: cfg_currentDesktopSelected === 1 + onToggled: if (checked) cfg_currentDesktopSelected = 1; } } -- GitLab