forked from Shinonome/dots-hyprland
67 lines
1.8 KiB
QML
67 lines
1.8 KiB
QML
import QtQuick
|
|
import QtQuick.Controls
|
|
import Quickshell
|
|
import Quickshell.Wayland
|
|
import Quickshell.Hyprland
|
|
import qs
|
|
import qs.services
|
|
import qs.modules.common
|
|
import qs.modules.common.widgets
|
|
import qs.modules.waffle.looks
|
|
import qs.modules.waffle.notificationCenter
|
|
|
|
Scope {
|
|
id: notificationPopup
|
|
|
|
PanelWindow {
|
|
id: root
|
|
visible: (Notifications.popupList.length > 0) && !GlobalStates.screenLocked
|
|
screen: Quickshell.screens.find(s => s.name === Hyprland.focusedMonitor?.name) ?? null
|
|
|
|
WlrLayershell.namespace: "quickshell:notificationPopup"
|
|
WlrLayershell.layer: WlrLayer.Overlay
|
|
exclusiveZone: 0
|
|
|
|
anchors {
|
|
top: true
|
|
right: true
|
|
bottom: true
|
|
}
|
|
|
|
mask: Region {
|
|
item: listview.contentItem
|
|
}
|
|
|
|
color: "transparent"
|
|
implicitWidth: listview.implicitWidth
|
|
|
|
WListView {
|
|
id: listview
|
|
anchors {
|
|
bottom: parent.bottom
|
|
right: parent.right
|
|
left: parent.left
|
|
}
|
|
leftMargin: 16
|
|
rightMargin: 16
|
|
topMargin: 16
|
|
bottomMargin: 16
|
|
|
|
height: Math.min(contentItem.height + topMargin + bottomMargin, parent.height)
|
|
width: parent.width - Appearance.sizes.elevationMargin * 2
|
|
|
|
implicitWidth: 396
|
|
spacing:12
|
|
|
|
model: ScriptModel {
|
|
values: Notifications.popupList
|
|
}
|
|
delegate: WSingleNotification {
|
|
required property var modelData
|
|
notification: modelData
|
|
width: ListView.view.width - ListView.view.leftMargin - ListView.view.rightMargin
|
|
}
|
|
}
|
|
}
|
|
}
|