diff options
| author | nippy <you@example.com> | 2026-04-18 13:49:56 +0200 |
|---|---|---|
| committer | nippy <you@example.com> | 2026-04-18 13:49:56 +0200 |
| commit | 5d94c0a7d44a2255b81815a52a7056a94a39842d (patch) | |
| tree | 759bdea9645c6a62f9e1e4c001f7d81cccd120d2 /raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Modules/Notifications/Center/NotificationHeader.qml | |
| parent | e79cdf210b267f21a186255ce1a4d50029439d54 (diff) | |
| download | RaveOS-PKGBUILD-5d94c0a7d44a2255b81815a52a7056a94a39842d.tar.gz RaveOS-PKGBUILD-5d94c0a7d44a2255b81815a52a7056a94a39842d.zip | |
update Raveos themes
Diffstat (limited to 'raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Modules/Notifications/Center/NotificationHeader.qml')
| -rw-r--r-- | raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Modules/Notifications/Center/NotificationHeader.qml | 158 |
1 files changed, 158 insertions, 0 deletions
diff --git a/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Modules/Notifications/Center/NotificationHeader.qml b/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Modules/Notifications/Center/NotificationHeader.qml new file mode 100644 index 0000000..201e716 --- /dev/null +++ b/raveos-theme/hyprland/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; + } + } + } +} |