Compare commits

..

2 commits

Author SHA1 Message Date
Benjamin Palko
41b75cffca move notif item to its own file 2025-08-25 16:47:16 -04:00
Benjamin Palko
12e1d64660 fix null items and log if event is null 2025-08-25 16:47:06 -04:00
3 changed files with 49 additions and 30 deletions

View file

@ -0,0 +1,40 @@
pragma ComponentBehavior: Bound
import qs.widgets
import QtQuick
import QtQuick.Layouts
import Quickshell
import Quickshell.Widgets
StyledLabel {
id: root
required property var modelData
margin: 16
anchors.left: parent.left
anchors.right: parent.right
RowLayout {
ClippingRectangle {
implicitWidth: icon.implicitSize
implicitHeight: icon.implicitSize
IconImage {
id: icon
implicitSize: 20
source: root.modelData.image == "" ? Quickshell.iconPath(root.modelData.appIcon, "device-support-unknown-symbolic") : root.modelData.image
}
}
ColumnLayout {
StyledText {
font.bold: true
font.pixelSize: 12
text: root.modelData.summary ?? root.modelData.appName
}
StyledText {
text: root.modelData.body
}
}
}
}

View file

@ -61,34 +61,7 @@ StyledPopupWindow {
}
}
model: Notifications.list
delegate: StyledLabel {
required property var modelData
margin: 16
anchors.left: parent.left
anchors.right: parent.right
RowLayout {
ClippingRectangle {
implicitWidth: icon.implicitSize
implicitHeight: icon.implicitSize
IconImage {
id: icon
implicitSize: 20
source: modelData.image == "" ? Quickshell.iconPath(modelData.appIcon, "device-support-unknown-symbolic") : modelData.image
}
}
ColumnLayout {
StyledText {
font.bold: true
font.pixelSize: 12
text: modelData.summary ?? modelData.appName
}
StyledText {
text: modelData.body
}
}
}
}
delegate: NotificationItem {}
}
}
}

View file

@ -1,5 +1,6 @@
pragma Singleton
import QtQuick
import Quickshell
import Quickshell.Services.Notifications
@ -31,9 +32,14 @@ Singleton {
if (!root.enabled) {
return;
}
if (event == null) {
console.log("Event is null?");
return;
}
event.tracked = true;
root.list = root.list.filter(item => item.id != event.id);
root.list.push(event);
root.list = root.list.filter(item => item != null && item.id != event.id).push(event);
}
}
}