diff options
author | kali kaneko (leap communications) <kali@leap.se> | 2021-06-22 17:10:26 +0200 |
---|---|---|
committer | kali kaneko (leap communications) <kali@leap.se> | 2021-06-22 18:04:46 +0200 |
commit | 45c13d49936009f095629ef6f6d82aae768b20f3 (patch) | |
tree | 98e15d3cc4f318053874381e7826b8e6500ad212 | |
parent | 326dc2449a69c9ea97cb5c2936807e9045dc1aa7 (diff) |
[feat] only show donate dialog after first connect when due
- Cloases: #470
-rw-r--r-- | CHANGELOG | 3 | ||||
-rw-r--r-- | gui/qml/VpnState.qml | 6 | ||||
-rw-r--r-- | gui/qml/logic.js | 20 | ||||
-rw-r--r-- | gui/qml/main.qml | 8 | ||||
-rw-r--r-- | pkg/backend/donate.go | 2 |
5 files changed, 26 insertions, 13 deletions
@@ -4,4 +4,5 @@ - First iteration of the gateway selector. - Allow to select obfs4 gateways (bridges) to bypass censorship. - Ability to define explicitly allowed addresses for local networks. -- Update translations. New locales: greek, farsi, hungarian, dutch, polish and uyghur. +- Make the donate dialog less intrusive (#470) +- Updated translations. New locales: greek, farsi, hungarian, dutch, polish and uyghur. diff --git a/gui/qml/VpnState.qml b/gui/qml/VpnState.qml index b18d6b5..86239e4 100644 --- a/gui/qml/VpnState.qml +++ b/gui/qml/VpnState.qml @@ -48,6 +48,12 @@ StateGroup { script: { Logic.setNeedsReconnect(false); brReconnect = false; + + if (needsDonate && !shownDonate) { + donate.visible = true; + shownDonate = true; + backend.donateSeen(); + } } } diff --git a/gui/qml/logic.js b/gui/qml/logic.js index 582b824..10ebfcd 100644 --- a/gui/qml/logic.js +++ b/gui/qml/logic.js @@ -1,5 +1,13 @@ -let status = 'off'; -let needsReconnect = false; +var status = 'off'; +var needsReconnect = false; + +function setNeedsReconnect(val) { + needsReconnect = val; +} + +function getNeedsReconnect() { + return needsReconnect; +} function setStatus(st) { status = st; @@ -9,12 +17,8 @@ function getStatus() { return status; } -function setNeedsReconnect(val) { - needsReconnect = val; -} - -function getNeedsReconnect() { - return needsReconnect; +function setNeedsDonate(val) { + needsDonate = val; } function toHuman(st) { diff --git a/gui/qml/main.qml b/gui/qml/main.qml index e0a9a81..e12c61d 100644 --- a/gui/qml/main.qml +++ b/gui/qml/main.qml @@ -21,7 +21,8 @@ ApplicationWindow { property var loginDone property var allowEmptyPass property var needsRestart - + property var needsDonate + property var shownDonate onSceneGraphError: function(error, msg) { console.debug("ERROR while initializing scene") @@ -189,9 +190,7 @@ ApplicationWindow { gwSelector.model = Object.keys(ctx.locations) if (ctx.donateDialog == 'true') { - console.debug(jsonModel.getJson()) - donate.visible = true - backend.donateSeen() + Logic.setNeedsDonate(true); } if (ctx.loginDialog == 'true') { console.debug(jsonModel.getJson()) @@ -276,6 +275,7 @@ ApplicationWindow { loginDone = false allowEmptyPass = Logic.shouldAllowEmptyPass(providers) needsRestart = false; + shownDonate = false; if (!systrayAvailable) { app.visible = true app.raise() diff --git a/pkg/backend/donate.go b/pkg/backend/donate.go index c16c0f4..98f9e6b 100644 --- a/pkg/backend/donate.go +++ b/pkg/backend/donate.go @@ -15,6 +15,8 @@ func runDonationReminder() { } } }() + // to test manually, uncomment this line. + // time.AfterFunc(1*time.Minute, func() { showDonate() }) } func needsDonationReminder() bool { |