diff options
Diffstat (limited to 'raveos-hyprland-theme/theme-data/dms/Modals/Changelog/ChangelogModal.qml')
| -rw-r--r-- | raveos-hyprland-theme/theme-data/dms/Modals/Changelog/ChangelogModal.qml | 156 |
1 files changed, 156 insertions, 0 deletions
diff --git a/raveos-hyprland-theme/theme-data/dms/Modals/Changelog/ChangelogModal.qml b/raveos-hyprland-theme/theme-data/dms/Modals/Changelog/ChangelogModal.qml new file mode 100644 index 0000000..524298b --- /dev/null +++ b/raveos-hyprland-theme/theme-data/dms/Modals/Changelog/ChangelogModal.qml @@ -0,0 +1,156 @@ +import QtQuick +import Quickshell +import qs.Common +import qs.Services +import qs.Widgets + +FloatingWindow { + id: root + + property bool disablePopupTransparency: true + readonly property int modalWidth: 680 + readonly property int modalHeight: screen ? Math.min(720, screen.height - 80) : 720 + + signal changelogDismissed + + function show() { + visible = true; + } + + objectName: "changelogModal" + title: i18n("What's New") + minimumSize: Qt.size(modalWidth, modalHeight) + maximumSize: Qt.size(modalWidth, modalHeight) + color: Theme.surfaceContainer + visible: false + + FocusScope { + id: contentFocusScope + anchors.fill: parent + focus: true + + Keys.onEscapePressed: event => { + root.dismiss(); + event.accepted = true; + } + + Keys.onPressed: event => { + switch (event.key) { + case Qt.Key_Return: + case Qt.Key_Enter: + root.dismiss(); + event.accepted = true; + break; + } + } + + MouseArea { + anchors.left: parent.left + anchors.right: parent.right + anchors.top: parent.top + height: headerRow.height + Theme.spacingM + onPressed: windowControls.tryStartMove() + onDoubleClicked: windowControls.tryToggleMaximize() + } + + Item { + id: headerRow + anchors.left: parent.left + anchors.right: parent.right + anchors.top: parent.top + anchors.margins: Theme.spacingM + height: Math.round(Theme.fontSizeMedium * 2.85) + + Row { + anchors.right: parent.right + anchors.verticalCenter: parent.verticalCenter + spacing: Theme.spacingXS + + DankActionButton { + visible: windowControls.supported && windowControls.canMaximize + iconName: root.maximized ? "fullscreen_exit" : "fullscreen" + iconSize: Theme.iconSize - 4 + iconColor: Theme.surfaceText + onClicked: windowControls.tryToggleMaximize() + } + + DankActionButton { + iconName: "close" + iconSize: Theme.iconSize - 4 + iconColor: Theme.surfaceText + onClicked: root.dismiss() + + DankTooltip { + text: i18n("Close") + } + } + } + } + + DankFlickable { + anchors.left: parent.left + anchors.right: parent.right + anchors.top: headerRow.bottom + anchors.bottom: footerRow.top + anchors.topMargin: Theme.spacingS + clip: true + contentHeight: mainColumn.height + Theme.spacingL * 2 + contentWidth: width + + ChangelogContent { + id: mainColumn + anchors.horizontalCenter: parent.horizontalCenter + width: Math.min(600, parent.width - Theme.spacingXL * 2) + } + } + + Rectangle { + id: footerRow + anchors.left: parent.left + anchors.right: parent.right + anchors.bottom: parent.bottom + height: Math.round(Theme.fontSizeMedium * 4.5) + color: Theme.surfaceContainerHigh + + Rectangle { + anchors.top: parent.top + width: parent.width + height: 1 + color: Theme.outlineMedium + opacity: 0.5 + } + + Row { + anchors.centerIn: parent + spacing: Theme.spacingM + + DankButton { + text: i18n("Read Full Release Notes") + iconName: "open_in_new" + backgroundColor: Theme.surfaceContainerHighest + textColor: Theme.surfaceText + onClicked: Qt.openUrlExternally("https://danklinux.com/blog/v1-4-release") + } + + DankButton { + text: i18n("Got It") + iconName: "check" + backgroundColor: Theme.primary + textColor: Theme.primaryText + onClicked: root.dismiss() + } + } + } + } + + FloatingWindowControls { + id: windowControls + targetWindow: root + } + + function dismiss() { + ChangelogService.dismissChangelog(); + changelogDismissed(); + visible = false; + } +} |