mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-01-24 13:32:50 -05:00
156 lines
4.4 KiB
QML
156 lines
4.4 KiB
QML
import QtQuick
|
|
import Quickshell
|
|
import qs.Common
|
|
import qs.Services
|
|
import qs.Widgets
|
|
|
|
FloatingWindow {
|
|
id: root
|
|
|
|
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: "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: "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: "Read Full Release Notes"
|
|
iconName: "open_in_new"
|
|
backgroundColor: Theme.surfaceContainerHighest
|
|
textColor: Theme.surfaceText
|
|
onClicked: Qt.openUrlExternally("https://danklinux.com/blog/v1-2-release")
|
|
}
|
|
|
|
DankButton {
|
|
text: "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;
|
|
}
|
|
}
|