Files
illogical-impulse/dots/.config/quickshell/ii/modules/waffle/notificationCenter/NotificationCenterContent.qml
T
2025-11-29 23:23:58 +01:00

100 lines
2.9 KiB
QML

pragma ComponentBehavior: Bound
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import Quickshell
import Qt.labs.synchronizer
import qs
import qs.services
import qs.modules.common
import qs.modules.common.functions
import qs.modules.waffle.looks
WBarAttachedPanelContent {
id: root
readonly property bool barAtBottom: Config.options.waffles.bar.bottom
revealFromSides: true
revealFromLeft: false
property bool collapsed: false
contentItem: ColumnLayout {
id: contentLayout
anchors {
horizontalCenter: parent.horizontalCenter
top: parent.top
bottom: parent.bottom
}
spacing: 12
Item {
id: notificationArea
Layout.fillHeight: true
implicitWidth: notificationPane.implicitWidth
WPane {
id: notificationPane
anchors {
bottom: parent.bottom
left: parent.left
right: parent.right
}
contentItem: NotificationPaneContent {
implicitWidth: calendarColumnLayout.implicitWidth
implicitHeight: {
if (Notifications.list.length > 0) {
return ((contentLayout.height - calendarPane.height - contentLayout.spacing) - notificationPane.borderWidth * 2)
}
return 230;
}
Timer {
id: enableTimer
interval: Config.options.hacks.arbitraryRaceConditionDelay
onTriggered: heightBehavior.enabled = true;
}
Behavior on implicitHeight {
id: heightBehavior
enabled: false
Component.onCompleted: {
enableTimer.restart();
}
animation: Looks.transition.enter.createObject(this)
}
}
}
}
WPane {
id: calendarPane
contentItem: WPanelPageColumn {
id: calendarColumnLayout
DateHeader {
Layout.fillWidth: true
Synchronizer on collapsed {
property alias source: root.collapsed
}
}
WPanelSeparator {
visible: !root.collapsed
}
CalendarWidget {
Layout.fillWidth: true
Synchronizer on collapsed {
property alias source: root.collapsed
}
}
WPanelSeparator {}
FocusFooter {
Layout.fillWidth: true
}
}
}
}
}