PushRule RoomList Room Menu Option

Add an option to the roomlist room menu to set the room push rule override.

Rename default to "follow global setting" for clarity.
This commit is contained in:
James Graham
2022-09-11 10:29:05 +00:00
parent 80bf279321
commit 7e1f0f4ea7
2 changed files with 52 additions and 7 deletions

View File

@@ -24,7 +24,7 @@ Loader {
Menu {
MenuItem {
id: newWindow
text: i18n("Open in new window")
text: i18n("Open in New Window")
onTriggered: RoomManager.openWindow(room);
visible: !Kirigami.Settings.isMobile
}
@@ -49,7 +49,7 @@ Loader {
}
MenuItem {
text: i18nc("@action:inmenu", "Copy address to clipboard")
text: i18nc("@action:inmenu", "Copy Address to Clipboard")
onTriggered: if (room.canonicalAlias.length === 0) {
Clipboard.saveText(room.id)
} else {
@@ -57,8 +57,53 @@ Loader {
}
}
Menu {
title: i18n("Notification State")
MenuItem {
text: i18n("Follow Global Setting")
checkable: true
autoExclusive: true
checked: room.pushNotificationState === PushNotificationState.Default
enabled: room.pushNotificationState != PushNotificationState.Unknown
onTriggered: {
room.pushNotificationState = PushNotificationState.Default
}
}
MenuItem {
text: i18nc("As in 'notify for all messages'","All")
checkable: true
autoExclusive: true
checked: room.pushNotificationState === PushNotificationState.All
enabled: room.pushNotificationState != PushNotificationState.Unknown
onTriggered: {
room.pushNotificationState = PushNotificationState.All
}
}
MenuItem {
text: i18nc("As in 'notify when the user is mentioned or the message contains a set keyword'","@Mentions and Keywords")
checkable: true
autoExclusive: true
checked: room.pushNotificationState === PushNotificationState.MentionKeyword
enabled: room.pushNotificationState != PushNotificationState.Unknown
onTriggered: {
room.pushNotificationState = PushNotificationState.MentionKeyword
}
}
MenuItem {
text: i18nc("As in 'do not notify for any messages'","Off")
checkable: true
autoExclusive: true
checked: room.pushNotificationState === PushNotificationState.Mute
enabled: room.pushNotificationState != PushNotificationState.Unknown
onTriggered: {
room.pushNotificationState = PushNotificationState.Mute
}
}
}
MenuItem {
text: i18n("Room settings")
text: i18n("Room Settings")
onTriggered: ApplicationWindow.window.pageStack.pushDialogLayer('qrc:/imports/NeoChat/RoomSettings/Categories.qml', {room: room})
}

View File

@@ -20,7 +20,7 @@ Kirigami.ScrollablePage {
Layout.fillWidth: true
QQC2.RadioButton {
text: i18n("Default")
text: i18n("Follow global setting")
Kirigami.FormData.label: i18n("Room notifications setting:")
checked: room.pushNotificationState === PushNotificationState.Default
enabled: room.pushNotificationState != PushNotificationState.Unknown
@@ -29,7 +29,7 @@ Kirigami.ScrollablePage {
}
}
QQC2.RadioButton {
text: i18n("All messages")
text: i18nc("As in 'notify for all messages'","All")
checked: room.pushNotificationState === PushNotificationState.All
enabled: room.pushNotificationState != PushNotificationState.Unknown
onToggled: {
@@ -37,7 +37,7 @@ Kirigami.ScrollablePage {
}
}
QQC2.RadioButton {
text: i18n("@mentions and keywords")
text: i18nc("As in 'notify when the user is mentioned or the message contains a set keyword'","@Mentions and Keywords")
checked: room.pushNotificationState === PushNotificationState.MentionKeyword
enabled: room.pushNotificationState != PushNotificationState.Unknown
onToggled: {
@@ -45,7 +45,7 @@ Kirigami.ScrollablePage {
}
}
QQC2.RadioButton {
text: i18n("Off")
text: i18nc("As in 'do not notify for any messages'","Off")
checked: room.pushNotificationState === PushNotificationState.Mute
enabled: room.pushNotificationState != PushNotificationState.Unknown
onToggled: {