summaryrefslogtreecommitdiff
path: root/gui/qml/VpnState.qml
diff options
context:
space:
mode:
authorkali kaneko (leap communications) <kali@leap.se>2020-09-02 23:47:05 +0200
committerkali kaneko (leap communications) <kali@leap.se>2021-05-04 14:58:39 +0200
commit4bd6bbd788454367cc89d78543312f333051b840 (patch)
tree6a3d01bf804ea4bd841c013dbe96ffe3df29323a /gui/qml/VpnState.qml
parent335bb742b957370bbf40ae77a661559805ab307f (diff)
[feat] expose gateway selector in gui
Diffstat (limited to 'gui/qml/VpnState.qml')
-rw-r--r--gui/qml/VpnState.qml64
1 files changed, 64 insertions, 0 deletions
diff --git a/gui/qml/VpnState.qml b/gui/qml/VpnState.qml
new file mode 100644
index 0000000..ea2a3b1
--- /dev/null
+++ b/gui/qml/VpnState.qml
@@ -0,0 +1,64 @@
+import QtQuick 2.0
+import QtQuick.Controls 1.4
+
+StateGroup {
+
+ state: ctx ? ctx.status : ""
+
+ states: [
+ State { name: "initializing" },
+ State {
+ name: "off"
+ PropertyChanges { target: systray; tooltip: toHuman("off"); icon.source: icons["off"] }
+ PropertyChanges { target: statusItem; text: toHuman("off") }
+ PropertyChanges { target: mainStatus; text: toHuman("off") }
+ PropertyChanges { target: mainCurrentGateway; text: "" }
+ PropertyChanges { target: mainOnBtn; visible: true }
+ PropertyChanges { target: mainOffBtn; visible: false }
+ PropertyChanges { target: gwMarker; color: "red"}
+ },
+ State {
+ name: "on"
+ StateChangeScript {
+ script: displayGatewayMarker()
+ }
+ PropertyChanges { target: systray; tooltip: toHuman("on"); icon.source: icons["on"] }
+ PropertyChanges { target: statusItem; text: toHumanWithLocation("on") }
+ PropertyChanges { target: mainStatus; text: toHuman("on") }
+ PropertyChanges { target: mainCurrentGateway; text: qsTr("Connected to ") + ctx.currentGateway }
+ PropertyChanges { target: mainOnBtn; visible: false }
+ PropertyChanges { target: mainOffBtn; visible: true }
+ PropertyChanges { target: gwMarker; color: "green"}
+ },
+ State {
+ name: "starting"
+ PropertyChanges { target: systray; tooltip: toHuman("connecting"); icon.source: icons["wait"] }
+ PropertyChanges { target: statusItem; text: toHumanWithLocation("connecting") }
+ PropertyChanges { target: mainStatus; text: qsTr("Connecting...") }
+ PropertyChanges { target: mainCurrentGateway; text: "" }
+ PropertyChanges { target: mainOnBtn; visible: false }
+ PropertyChanges { target: mainOffBtn; visible: true }
+ PropertyChanges { target: gwMarker; color: "orange"}
+ },
+ State {
+ name: "stopping"
+ PropertyChanges { target: systray; tooltip: toHuman("stopping"); icon.source: icons["wait"] }
+ PropertyChanges { target: statusItem; text: toHuman("stopping") }
+ PropertyChanges { target: mainStatus; text: toHuman("stopping") }
+ PropertyChanges { target: mainCurrentGateway; text: "" }
+ PropertyChanges { target: mainOnBtn; visible: true }
+ PropertyChanges { target: mainOffBtn; visible: false }
+ PropertyChanges { target: gwMarker; color: "orange"}
+ },
+ State {
+ name: "failed"
+ PropertyChanges { target: systray; tooltip: toHuman("failed"); icon.source: icons["wait"] }
+ PropertyChanges { target: statusItem; text: toHuman("failed") }
+ PropertyChanges { target: mainStatus; text: toHuman("failed") }
+ PropertyChanges { target: mainCurrentGateway; text: "" }
+ PropertyChanges { target: mainOnBtn; visible: true }
+ PropertyChanges { target: mainOffBtn; visible: false }
+ PropertyChanges { target: gwMarker; color: "red"}
+ }
+ ]
+}