From 4bd6bbd788454367cc89d78543312f333051b840 Mon Sep 17 00:00:00 2001 From: "kali kaneko (leap communications)" Date: Wed, 2 Sep 2020 23:47:05 +0200 Subject: [feat] expose gateway selector in gui --- gui/qml/VpnState.qml | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 gui/qml/VpnState.qml (limited to 'gui/qml/VpnState.qml') 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"} + } + ] +} -- cgit v1.2.3