summaryrefslogtreecommitdiff
path: root/raveos-hyprland-theme/theme-data/DankMaterialShell/quickshell/Modules/Notifications/Center/NotificationHeader.qml
diff options
context:
space:
mode:
authorAlexanderCurl <alexc@alexc.hu>2026-04-18 17:46:06 +0100
committerAlexanderCurl <alexc@alexc.hu>2026-04-18 17:46:06 +0100
commit70ca3fef77ee8bdc6e3ac28589a6fa08c024cc69 (patch)
treeab1123d4067c1b086dd6faa7ee4ea643236b565a /raveos-hyprland-theme/theme-data/DankMaterialShell/quickshell/Modules/Notifications/Center/NotificationHeader.qml
parent5d94c0a7d44a2255b81815a52a7056a94a39842d (diff)
downloadRaveOS-PKGBUILD-70ca3fef77ee8bdc6e3ac28589a6fa08c024cc69.tar.gz
RaveOS-PKGBUILD-70ca3fef77ee8bdc6e3ac28589a6fa08c024cc69.zip
Replaced file structures for themes in the correct format
Diffstat (limited to 'raveos-hyprland-theme/theme-data/DankMaterialShell/quickshell/Modules/Notifications/Center/NotificationHeader.qml')
-rw-r--r--raveos-hyprland-theme/theme-data/DankMaterialShell/quickshell/Modules/Notifications/Center/NotificationHeader.qml158
1 files changed, 158 insertions, 0 deletions
diff --git a/raveos-hyprland-theme/theme-data/DankMaterialShell/quickshell/Modules/Notifications/Center/NotificationHeader.qml b/raveos-hyprland-theme/theme-data/DankMaterialShell/quickshell/Modules/Notifications/Center/NotificationHeader.qml
new file mode 100644
index 0000000..201e716
--- /dev/null
+++ b/raveos-hyprland-theme/theme-data/DankMaterialShell/quickshell/Modules/Notifications/Center/NotificationHeader.qml
@@ -0,0 +1,158 @@
+import QtQuick
+import qs.Common
+import qs.Services
+import qs.Widgets
+
+Item {
+ id: root
+
+ property var keyboardController: null
+ property bool showSettings: false
+ property int currentTab: 0
+
+ onCurrentTabChanged: {
+ if (currentTab === 1 && !SettingsData.notificationHistoryEnabled)
+ currentTab = 0;
+ }
+
+ Connections {
+ target: SettingsData
+ function onNotificationHistoryEnabledChanged() {
+ if (!SettingsData.notificationHistoryEnabled)
+ root.currentTab = 0;
+ }
+ }
+
+ width: parent.width
+ height: headerColumn.implicitHeight
+
+ DankTooltipV2 {
+ id: sharedTooltip
+ }
+
+ Column {
+ id: headerColumn
+ width: parent.width
+ spacing: Theme.spacingS
+
+ Item {
+ width: parent.width
+ height: Math.max(titleRow.implicitHeight, actionsRow.implicitHeight)
+
+ Row {
+ id: titleRow
+ anchors.left: parent.left
+ anchors.verticalCenter: parent.verticalCenter
+ spacing: Theme.spacingXS
+
+ StyledText {
+ text: I18n.tr("Notifications")
+ font.pixelSize: Theme.fontSizeLarge
+ color: Theme.surfaceText
+ font.weight: Font.Medium
+ anchors.verticalCenter: parent.verticalCenter
+ }
+
+ DankActionButton {
+ id: doNotDisturbButton
+ iconName: SessionData.doNotDisturb ? "notifications_off" : "notifications"
+ iconColor: SessionData.doNotDisturb ? Theme.error : Theme.surfaceText
+ buttonSize: Theme.iconSize + Theme.spacingS
+ anchors.verticalCenter: parent.verticalCenter
+ onClicked: SessionData.setDoNotDisturb(!SessionData.doNotDisturb)
+ onEntered: sharedTooltip.show(I18n.tr("Do Not Disturb"), doNotDisturbButton, 0, 0, "bottom")
+ onExited: sharedTooltip.hide()
+ }
+ }
+
+ Row {
+ id: actionsRow
+ anchors.right: parent.right
+ anchors.verticalCenter: parent.verticalCenter
+ spacing: Theme.spacingXS
+
+ DankActionButton {
+ id: helpButton
+ iconName: "info"
+ iconColor: (keyboardController && keyboardController.showKeyboardHints) ? Theme.primary : Theme.surfaceText
+ buttonSize: Theme.iconSize + Theme.spacingS
+ visible: keyboardController !== null
+ anchors.verticalCenter: parent.verticalCenter
+ onClicked: {
+ if (keyboardController)
+ keyboardController.showKeyboardHints = !keyboardController.showKeyboardHints;
+ }
+ }
+
+ DankActionButton {
+ id: settingsButton
+ iconName: "settings"
+ iconColor: root.showSettings ? Theme.primary : Theme.surfaceText
+ buttonSize: Theme.iconSize + Theme.spacingS
+ anchors.verticalCenter: parent.verticalCenter
+ onClicked: root.showSettings = !root.showSettings
+ }
+
+ Rectangle {
+ id: clearAllButton
+ width: clearButtonContent.implicitWidth + Theme.spacingM * 2
+ height: Theme.iconSize + Theme.spacingS
+ radius: Theme.cornerRadius
+ visible: root.currentTab === 0 ? NotificationService.notifications.length > 0 : NotificationService.historyList.length > 0
+ color: clearArea.containsMouse ? Theme.primaryHoverLight : Theme.withAlpha(Theme.surfaceContainerHigh, Theme.popupTransparency)
+
+ Row {
+ id: clearButtonContent
+ anchors.centerIn: parent
+ spacing: Theme.spacingXS
+
+ DankIcon {
+ name: "delete_sweep"
+ size: Theme.iconSizeSmall
+ color: clearArea.containsMouse ? Theme.primary : Theme.surfaceText
+ anchors.verticalCenter: parent.verticalCenter
+ }
+
+ StyledText {
+ text: I18n.tr("Clear")
+ font.pixelSize: Theme.fontSizeSmall
+ color: clearArea.containsMouse ? Theme.primary : Theme.surfaceText
+ font.weight: Font.Medium
+ anchors.verticalCenter: parent.verticalCenter
+ }
+ }
+
+ MouseArea {
+ id: clearArea
+ anchors.fill: parent
+ hoverEnabled: true
+ cursorShape: Qt.PointingHandCursor
+ onClicked: {
+ if (root.currentTab === 0) {
+ NotificationService.clearAllNotifications();
+ } else {
+ NotificationService.clearHistory();
+ }
+ }
+ }
+ }
+ }
+ }
+
+ DankButtonGroup {
+ id: tabGroup
+ width: parent.width
+ currentIndex: root.currentTab
+ buttonHeight: 32
+ buttonPadding: Theme.spacingM
+ checkEnabled: false
+ textSize: Theme.fontSizeSmall
+ visible: SettingsData.notificationHistoryEnabled
+ model: [I18n.tr("Current", "notification center tab") + " (" + NotificationService.notifications.length + ")", I18n.tr("History", "notification center tab") + " (" + NotificationService.historyList.length + ")"]
+ onSelectionChanged: (index, selected) => {
+ if (selected)
+ root.currentTab = index;
+ }
+ }
+ }
+}