43 lines
859 B
QML
43 lines
859 B
QML
|
pragma Singleton
|
||
|
pragma ComponentBehavior: Bound
|
||
|
|
||
|
import Quickshell
|
||
|
import Quickshell.Services.Notifications
|
||
|
import QtQuick
|
||
|
|
||
|
Singleton {
|
||
|
id: root
|
||
|
|
||
|
readonly property list<Notif> list: []
|
||
|
readonly property list<Notif> popups: list.filter(n => n.popup)
|
||
|
|
||
|
NotificationServer {
|
||
|
id: server
|
||
|
|
||
|
keepOnReload: false
|
||
|
|
||
|
onNotification: notif => {
|
||
|
notif.tracked = true;
|
||
|
|
||
|
root.list.push(notifComp.createObject(root, {
|
||
|
popup: true,
|
||
|
notification: notif
|
||
|
}));
|
||
|
}
|
||
|
}
|
||
|
|
||
|
component Notif: QtObject {
|
||
|
property bool popup
|
||
|
readonly property date time: new Date()
|
||
|
|
||
|
required property Notification notification
|
||
|
readonly property string summary: notification.summary
|
||
|
}
|
||
|
|
||
|
Component {
|
||
|
id: notifComp
|
||
|
|
||
|
Notif {}
|
||
|
}
|
||
|
}
|