diff --git a/src/gui/Pages/AccountSettings/NotificationRuleButton.qml b/src/gui/Pages/AccountSettings/NotificationRuleButton.qml index 07aa0e84..363c0d62 100644 --- a/src/gui/Pages/AccountSettings/NotificationRuleButton.qml +++ b/src/gui/Pages/AccountSettings/NotificationRuleButton.qml @@ -6,8 +6,9 @@ import "../../Base" HButton { property string toggles: "" property var nextValue: ! on + property HButton requiresOn: null - readonly property bool on: + readonly property bool on: (requiresOn === null || requiresOn.on) && ( toggles && page.pendingEdits[model.id] && toggles in page.pendingEdits[model.id] ? Boolean(page.pendingEdits[model.id][toggles]) : @@ -16,13 +17,20 @@ HButton { Boolean(model[toggles]) : true - + ) opacity: on ? 1 : theme.disabledElementsOpacity hoverEnabled: true backgroundColor: "transparent" onClicked: { + if (requiresOn !== null && ! requiresOn.on) { + requiresOn.clicked() + print(on, clicked) + if (! on) clicked() + return + } + if (! toggles) return if (! (model.id in page.pendingEdits)) page.pendingEdits[model.id] = {} diff --git a/src/gui/Pages/AccountSettings/NotificationRuleDelegate.qml b/src/gui/Pages/AccountSettings/NotificationRuleDelegate.qml index 3f11053e..a5871def 100644 --- a/src/gui/Pages/AccountSettings/NotificationRuleDelegate.qml +++ b/src/gui/Pages/AccountSettings/NotificationRuleDelegate.qml @@ -118,7 +118,7 @@ HTile { } NotificationRuleButton { - enabled: notifyButton.on + requiresOn: notifyButton toggles: "highlight" contentItem: MessageIndicator { @@ -135,11 +135,13 @@ HTile { } NotificationRuleButton { + requiresOn: notifyButton icon.name: "pushrule-action-bubble" toggles: "bubble" } NotificationRuleButton { + requiresOn: notifyButton icon.name: "pushrule-action-sound" toggles: "sound" nextValue: @@ -150,6 +152,7 @@ HTile { } NotificationRuleButton { + requiresOn: notifyButton icon.name: "pushrule-action-urgency-hint" toggles: "urgency_hint" }