blob: 16677a27fcb8476a6e68722f8dad97d73f2be834 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
/*
TODO (ui rewrite)
- [x] add systray
- [x] systray status
- [x] splash screen
- [ ] splash delay/transitions
- [ ] nested states
- [ ] splash init errors
- [ ] font: monserrat
- [ ] donation dialog
- [ ] add gateway to systray
- [ ] control actions from systray
- [ ] minimize/hide from systray
- [ ] parse ctx flags (need dialog, etc)
- [ ] gateway selector
- [ ] bridges
*/
import QtQuick 2.0
import QtQuick.Controls 2.4
import QtQuick.Dialogs 1.2
import QtQuick.Controls.Material 2.1
import QtQuick.Layouts 1.14
import "./components"
ApplicationWindow {
id: root
visible: true
width: 360
height: 520
minimumWidth: 300
maximumWidth: 300
minimumHeight: 500
maximumHeight: 500
title: ctx ? ctx.appName : "VPN"
Material.accent: Material.Green
property var ctx
property var icons: {
"off": "qrc:/assets/icon/png/white/vpn_off.png",
"on": "qrc:/assets/icon/png/white/vpn_on.png",
"wait": "qrc:/assets/icon/png/white/vpn_wait_0.png",
"blocked": "qrc:/assets/icon/png/white/vpn_blocked.png"
}
Loader {
id: loader
asynchronous: true
anchors.fill: parent
}
Systray {
id: systray
}
Connections {
target: jsonModel
function onDataChanged() {
ctx = JSON.parse(jsonModel.getJson())
if (qmlDebug) {
console.debug(jsonModel.getJson())
}
// FIXME -- use nested state machines for all these cases.
//gwSelector.model = Object.keys(ctx.locations)
/*
if (ctx.donateDialog == 'true') {
Logic.setNeedsDonate(true);
}
if (ctx.loginDialog == 'true') {
console.debug(jsonModel.getJson())
console.debug("DEBUG: should display login")
login.visible = true
}
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.donateURL) {
donateItem.visible = true
}
if (ctx.status == "on") {
gwNextConnectionText.visible = false
gwReconnectText.visible = false
}
*/
}
}
onSceneGraphError: function(error, msg) {
console.debug("ERROR while initializing scene")
console.debug(msg)
}
Component.onCompleted: {
loader.source = "components/Splash.qml"
}
}
|