69 lines
1.6 KiB
QML
69 lines
1.6 KiB
QML
import QtQuick
|
|
import QtQuick.Layouts
|
|
import Quickshell
|
|
import Quickshell.Wayland
|
|
import Quickshell.Services.Notifications
|
|
import qs
|
|
import qs.common
|
|
|
|
Scope {
|
|
id: root
|
|
property bool visible: false
|
|
property int panelWidth: 350
|
|
|
|
Loader {
|
|
id: notificationPanelLoader
|
|
active: GlobalStates.notificationPanelOpen
|
|
/**
|
|
onActiveChanged: {
|
|
if (!notificationPanelLoader.active & NotificationServer.amountNotifications == 0) {
|
|
GlobalStates.notificationPanelOpen = false;
|
|
}
|
|
}
|
|
//*/
|
|
|
|
sourceComponent: PanelWindow {
|
|
id: notificationPanelRoot
|
|
visible: true
|
|
|
|
exclusionMode: ExclusionMode.Ignore
|
|
exclusiveZone: 0
|
|
|
|
implicitWidth: root.panelWidth
|
|
|
|
|
|
anchors {
|
|
top: true
|
|
right: true
|
|
bottom: true
|
|
}
|
|
margins {
|
|
top: Config.options.bar.height
|
|
}
|
|
|
|
Rectangle {
|
|
anchors {
|
|
fill: parent
|
|
margins: Config.options.bar.cornerStyle === 1 ? (Appearance.sizes.hyprlandGapsOut) : 0
|
|
}
|
|
color: Config.options.bar.showBackground ? Appearance.colors.colLayer1 : "transparent"
|
|
}
|
|
|
|
ColumnLayout {
|
|
id: notifs
|
|
anchors.margins: 4
|
|
anchors.left: parent.left
|
|
anchors.right: parent.right
|
|
Repeater {
|
|
model: NotificationService.notifications
|
|
NotificationItem {
|
|
required property Notification modelData
|
|
notif: modelData
|
|
textWidth: root.panelWidth - 14
|
|
notificationRounding: Appearance.rounding.unsharpenmore
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |