utilities/toggles: add dnd

Closes #80
Closes #426
This commit is contained in:
2 * r + 2 * t 2025-09-15 23:32:07 +10:00
parent dbb1b08e58
commit 172c1a047d
2 changed files with 36 additions and 4 deletions

View file

@ -78,6 +78,12 @@ StyledRect {
checked: GameMode.enabled
onClicked: GameMode.enabled = !GameMode.enabled
}
Toggle {
icon: "notifications_off"
checked: Notifs.dnd
onClicked: Notifs.dnd = !Notifs.dnd
}
}
}

View file

@ -13,6 +13,15 @@ Singleton {
readonly property list<Notif> list: []
readonly property list<Notif> popups: list.filter(n => n.popup)
property alias dnd: props.dnd
PersistentProperties {
id: props
property bool dnd
reloadableId: "notifs"
}
NotificationServer {
id: server
@ -27,10 +36,11 @@ Singleton {
onNotification: notif => {
notif.tracked = true;
root.list.push(notifComp.createObject(root, {
popup: true,
notification: notif
}));
if (!props.dnd)
root.list.push(notifComp.createObject(root, {
popup: true,
notification: notif
}));
}
}
@ -50,6 +60,22 @@ Singleton {
for (const notif of root.list)
notif.popup = false;
}
function isDndEnabled(): bool {
return props.dnd;
}
function toggleDnd(): void {
props.dnd = !props.dnd;
}
function enableDnd(): void {
props.dnd = true;
}
function disableDnd(): void {
props.dnd = false;
}
}
component Notif: QtObject {