mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2025-12-05 21:15:38 -05:00
- Dedicated view in settings - VPN profile management - Ethernet disconnection - Turn prompts into floating windows
91 lines
2.4 KiB
QML
91 lines
2.4 KiB
QML
import QtQuick
|
|
import QtQuick.Layouts
|
|
import qs.Common
|
|
import qs.Services
|
|
import qs.Widgets
|
|
|
|
DankPopout {
|
|
id: root
|
|
|
|
layerNamespace: "dms:vpn"
|
|
|
|
Ref {
|
|
service: DMSNetworkService
|
|
}
|
|
|
|
property bool wasVisible: false
|
|
property var triggerScreen: null
|
|
|
|
popupWidth: 380
|
|
popupHeight: Math.min(Screen.height - 100, contentLoader.item ? contentLoader.item.implicitHeight : 320)
|
|
triggerWidth: 70
|
|
screen: triggerScreen
|
|
shouldBeVisible: false
|
|
|
|
onShouldBeVisibleChanged: {
|
|
if (shouldBeVisible && !wasVisible) {
|
|
DMSNetworkService.getState();
|
|
}
|
|
wasVisible = shouldBeVisible;
|
|
}
|
|
|
|
onBackgroundClicked: close()
|
|
|
|
content: Component {
|
|
Rectangle {
|
|
id: content
|
|
|
|
implicitHeight: contentColumn.height + Theme.spacingL * 2
|
|
color: Theme.withAlpha(Theme.surfaceContainer, Theme.popupTransparency)
|
|
radius: Theme.cornerRadius
|
|
border.color: Theme.outlineMedium
|
|
border.width: 0
|
|
focus: true
|
|
|
|
Keys.onPressed: event => {
|
|
if (event.key === Qt.Key_Escape) {
|
|
root.close();
|
|
event.accepted = true;
|
|
}
|
|
}
|
|
|
|
Column {
|
|
id: contentColumn
|
|
|
|
anchors.left: parent.left
|
|
anchors.right: parent.right
|
|
anchors.top: parent.top
|
|
anchors.margins: Theme.spacingL
|
|
spacing: Theme.spacingM
|
|
|
|
RowLayout {
|
|
width: parent.width
|
|
height: 32
|
|
spacing: Theme.spacingS
|
|
|
|
StyledText {
|
|
text: I18n.tr("VPN Connections")
|
|
font.pixelSize: Theme.fontSizeLarge
|
|
color: Theme.surfaceText
|
|
font.weight: Font.Medium
|
|
Layout.fillWidth: true
|
|
}
|
|
|
|
DankActionButton {
|
|
iconName: "close"
|
|
iconSize: Theme.iconSize - 4
|
|
iconColor: Theme.surfaceText
|
|
onClicked: root.close()
|
|
}
|
|
}
|
|
|
|
VpnDetailContent {
|
|
width: parent.width
|
|
listHeight: 200
|
|
parentPopout: root
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|