summaryrefslogtreecommitdiff
path: root/gui/qml/main.qml
diff options
context:
space:
mode:
Diffstat (limited to 'gui/qml/main.qml')
-rw-r--r--gui/qml/main.qml240
1 files changed, 144 insertions, 96 deletions
diff --git a/gui/qml/main.qml b/gui/qml/main.qml
index 4fce2c4..4115922 100644
--- a/gui/qml/main.qml
+++ b/gui/qml/main.qml
@@ -10,13 +10,13 @@ ApplicationWindow {
visible: false
property var ctx
- property var loginDone
+ property var loginDone
property var allowEmptyPass
Connections {
target: jsonModel
onDataChanged: {
- ctx = JSON.parse(jsonModel.getJson());
+ ctx = JSON.parse(jsonModel.getJson())
// FIXME -- we need to inform the backend that we've already seen
// this. Otherwise this keeps popping randonmly on state changes.
@@ -32,15 +32,16 @@ ApplicationWindow {
if (ctx.loginOk == 'true') {
loginOk.visible = true
}
- if (ctx.errors ) {
- login.visible = false
- if ( ctx.errors == "nohelpers" ) {
- showInitFailure(qsTr("Could not find helpers. Please check your installation"))
- } else if ( ctx.errors == "nopolkit" ) {
- showInitFailure(qsTr("Could not find polkit agent."))
- } else {
- showInitFailure()
- }
+ if (ctx.errors) {
+ login.visible = false
+ if (ctx.errors == "nohelpers") {
+ showInitFailure(
+ qsTr("Could not find helpers. Please check your installation"))
+ } else if (ctx.errors == "nopolkit") {
+ showInitFailure(qsTr("Could not find polkit agent."))
+ } else {
+ showInitFailure()
+ }
}
if (ctx.donateURL) {
donateItem.visible = true
@@ -51,11 +52,11 @@ ApplicationWindow {
function showInitFailure(msg) {
console.debug("ERRORS:", ctx.errors)
if (msg == undefined) {
- if (ctx.errors == 'bad_auth_502' || ctx.errors == 'bad_auth_timeout') {
- msg = qsTr("Oops! The authentication service seems down. Please try again later")
+ if (ctx.errors == 'bad_auth_502'
+ || ctx.errors == 'bad_auth_timeout') {
+ msg = qsTr("Oops! The authentication service seems down. Please try again later")
initFailure.title = qsTr("Service Error")
- }
- else if (ctx.errors == 'bad_auth') {
+ } else if (ctx.errors == 'bad_auth') {
if (allowEmptyPass) {
// For now, this is a libraryVPN, so we can be explicit about what credentials are here.
// Another option to consider is to customize the error strings while vendoring.
@@ -68,18 +69,19 @@ ApplicationWindow {
} else {
//: %1 -> application name
//: %2 -> error string
- msg = qsTr("Got an error starting %1: %2").arg(ctx.appName).arg(ctx.errors)
+ msg = qsTr("Got an error starting %1: %2").arg(ctx.appName).arg(
+ ctx.errors)
}
}
initFailure.text = msg
- initFailure.visible = true
+ initFailure.visible = true
}
function shouldAllowEmptyPass() {
let obj = JSON.parse(providers.getJson())
let active = obj['default']
let allProviders = obj['providers']
- for (let i = 0; i < allProviders.length; i++) {
+ for (var i = 0; i < allProviders.length; i++) {
if (allProviders[i]['name'] === active) {
return (allProviders[i]['authEmptyPass'] === 'true')
}
@@ -88,44 +90,44 @@ ApplicationWindow {
}
Component.onCompleted: {
- loginDone = false;
- console.debug("Platform:", Qt.platform.os);
- console.debug("DEBUG: Pre-seeded providers:");
- console.debug(providers.getJson());
- allowEmptyPass = shouldAllowEmptyPass();
+ loginDone = false
+ console.debug("Platform:", Qt.platform.os)
+ console.debug("DEBUG: Pre-seeded providers:")
+ console.debug(providers.getJson())
+ allowEmptyPass = shouldAllowEmptyPass()
/* TODO get appVisible flag from backend */
- app.visible = false;
+ app.visible = false
}
function toHuman(st) {
- switch(st) {
- case "off":
- //: %1 -> application name
- return qsTr("%1 off").arg(ctx.appName);
- case "on":
- //: %1 -> application name
- return qsTr("%1 on").arg(ctx.appName);
- case "connecting":
- //: %1 -> application name
- return qsTr("Connecting to %1").arg(ctx.appName);
- case "stopping":
- //: %1 -> application name
- return qsTr("Stopping %1").arg(ctx.appName);
- case "failed":
- //: %1 -> application name
- return qsTr("%1 blocking internet").arg(ctx.appName); // TODO failed is not handed yet
+ switch (st) {
+ case "off":
+ //: %1 -> application name
+ return qsTr("%1 off").arg(ctx.appName)
+ case "on":
+ //: %1 -> application name
+ return qsTr("%1 on").arg(ctx.appName)
+ case "connecting":
+ //: %1 -> application name
+ return qsTr("Connecting to %1").arg(ctx.appName)
+ case "stopping":
+ //: %1 -> application name
+ return qsTr("Stopping %1").arg(ctx.appName)
+ case "failed":
+ //: %1 -> application name
+ return qsTr("%1 blocking internet").arg(
+ ctx.appName) // TODO failed is not handed yet
}
}
property var icons: {
- "off": "qrc:/assets/icon/png/black/vpn_off.png",
- "on": "qrc:/assets/icon/png/black/vpn_on.png",
- "wait": "qrc:/assets/icon/png/black/vpn_wait_0.png",
- "blocked": "qrc:/assets/icon/png/black/vpn_blocked.png",
+ "off": "qrc:/assets/icon/png/black/vpn_off.png",
+ "on": "qrc:/assets/icon/png/black/vpn_on.png",
+ "wait": "qrc:/assets/icon/png/black/vpn_wait_0.png",
+ "blocked": "qrc:/assets/icon/png/black/vpn_blocked.png"
}
-
SystemTrayIcon {
id: systray
@@ -136,31 +138,31 @@ ApplicationWindow {
// produce a segfault when trying to call menu.open()
// left and right click seem to be working fine, so let's ignore this for now.
switch (reason) {
- case SystemTrayIcon.Unknown:
- console.debug("activated: unknown event")
+ case SystemTrayIcon.Unknown:
+ console.debug("activated: unknown event")
+ menu.open()
+ break
+ case SystemTrayIcon.Context:
+ console.debug("activated: context")
+ /* segfaults in osx and linux */
+ if (Qt.platform.os === "windows") {
menu.open()
- break
- case SystemTrayIcon.Context:
- console.debug("activated: context")
- /* segfaults in osx and linux */
- if (Qt.platform.os === "windows") {
- menu.open()
- }
- break
- case SystemTrayIcon.DoubleClick:
- console.debug("activated: double click")
- if (Qt.platform.os === "windows") {
- menu.open()
- }
- break
- case SystemTrayIcon.Trigger:
- console.debug("activated: left click")
- if (Qt.platform.os === "windows") {
- menu.open()
- }
- break
- case SystemTrayIcon.MiddleClick:
- break
+ }
+ break
+ case SystemTrayIcon.DoubleClick:
+ console.debug("activated: double click")
+ if (Qt.platform.os === "windows") {
+ menu.open()
+ }
+ break
+ case SystemTrayIcon.Trigger:
+ console.debug("activated: left click")
+ if (Qt.platform.os === "windows") {
+ menu.open()
+ }
+ break
+ case SystemTrayIcon.MiddleClick:
+ break
}
}
@@ -168,24 +170,26 @@ ApplicationWindow {
icon.source = icons["off"]
tooltip = qsTr("Checking status...")
console.debug("systray init completed")
- hide();
+ hide()
if (systrayVisible) {
- show();
+ show()
if (Qt.platform.os === "windows") {
- let appname = ctx ? ctx.appName: "VPN";
- showNotification(appname + " is up and running. Please use system tray icon to control it.");
+ let appname = ctx ? ctx.appName : "VPN"
+ showNotification(
+ appname
+ + " is up and running. Please use system tray icon to control it.")
}
}
}
// Helper to show notification messages
function showNotification(msg) {
- console.log("Going to show notification message: ", msg);
+ console.log("Going to show notification message: ", msg)
if (supportsMessages) {
- let appname = ctx ? ctx.appName: "VPN";
- showMessage(appname, msg, null, 15000);
+ let appname = ctx ? ctx.appName : "VPN"
+ showMessage(appname, msg, null, 15000)
} else {
- console.log("System doesn't support systray notifications");
+ console.log("System doesn't support systray notifications")
}
}
@@ -198,31 +202,68 @@ ApplicationWindow {
state: ctx ? ctx.status : ""
states: [
- State { name: "initializing" },
+ State {
+ name: "initializing"
+ },
State {
name: "off"
- PropertyChanges { target: systray; tooltip: toHuman("off"); icon.source: icons["off"] }
- PropertyChanges { target: statusItem; text: toHuman("off") }
+ PropertyChanges {
+ target: systray
+ tooltip: toHuman("off")
+ icon.source: icons["off"]
+ }
+ PropertyChanges {
+ target: statusItem
+ text: toHuman("off")
+ }
},
State {
name: "on"
- PropertyChanges { target: systray; tooltip: toHuman("on"); icon.source: icons["on"] }
- PropertyChanges { target: statusItem; text: toHuman("on") }
+ PropertyChanges {
+ target: systray
+ tooltip: toHuman("on")
+ icon.source: icons["on"]
+ }
+ PropertyChanges {
+ target: statusItem
+ text: toHuman("on")
+ }
},
State {
name: "starting"
- PropertyChanges { target: systray; tooltip: toHuman("connecting"); icon.source: icons["wait"] }
- PropertyChanges { target: statusItem; text: toHuman("connecting") }
+ PropertyChanges {
+ target: systray
+ tooltip: toHuman("connecting")
+ icon.source: icons["wait"]
+ }
+ PropertyChanges {
+ target: statusItem
+ text: toHuman("connecting")
+ }
},
State {
name: "stopping"
- PropertyChanges { target: systray; tooltip: toHuman("stopping"); icon.source: icons["wait"] }
- PropertyChanges { target: statusItem; text: toHuman("stopping") }
+ PropertyChanges {
+ target: systray
+ tooltip: toHuman("stopping")
+ icon.source: icons["wait"]
+ }
+ PropertyChanges {
+ target: statusItem
+ text: toHuman("stopping")
+ }
},
State {
name: "failed"
- PropertyChanges { target: systray; tooltip: toHuman("failed"); icon.source: icons["blocked"] }
- PropertyChanges { target: statusItem; text: toHuman("failed") }
+ PropertyChanges {
+ target: systray
+ tooltip: toHuman("failed")
+ icon.source: icons["blocked"]
+ }
+ PropertyChanges {
+ target: statusItem
+ text: toHuman("failed")
+ }
}
]
}
@@ -243,7 +284,8 @@ ApplicationWindow {
onTriggered: {
backend.switchOn()
}
- visible: ctx ? (ctx.status == "off" || ctx.status == "failed") : false
+ visible: ctx ? (ctx.status == "off"
+ || ctx.status == "failed") : false
}
MenuItem {
@@ -256,22 +298,26 @@ ApplicationWindow {
onTriggered: {
backend.switchOff()
}
- visible: ctx ? (ctx.status == "on" || ctx.status == "starting" || ctx.status == "failed") : false
+ visible: ctx ? (ctx.status == "on" || ctx.status == "starting"
+ || ctx.status == "failed") : false
}
MenuSeparator {}
-
MenuItem {
text: qsTr("About...")
- onTriggered: { about.visible = true }
+ onTriggered: {
+ about.visible = true
+ }
}
MenuItem {
id: donateItem
text: qsTr("Donate...")
visible: ctx ? ctx.donateURL : false
- onTriggered: { donate.visible = true }
+ onTriggered: {
+ donate.visible = true
+ }
}
MenuSeparator {}
@@ -280,7 +326,7 @@ ApplicationWindow {
text: qsTr("Help...")
onTriggered: {
- console.debug(Qt.resolvedUrl(ctx.helpURL));
+ console.debug(Qt.resolvedUrl(ctx.helpURL))
Qt.openUrlExternally(Qt.resolvedUrl(ctx.helpURL))
}
}
@@ -289,7 +335,9 @@ ApplicationWindow {
text: qsTr("Report a bug...")
onTriggered: {
- Qt.openUrlExternally(Qt.resolvedUrl("https://0xacab.org/leap/bitmask-vpn/issues"))
+ Qt.openUrlExternally(
+ Qt.resolvedUrl(
+ "https://0xacab.org/leap/bitmask-vpn/issues"))
}
}
@@ -317,7 +365,7 @@ ApplicationWindow {
visible: false
}
- LoginOKDialog{
+ LoginOKDialog {
id: loginOk
visible: false
}