summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gui/backend.go5
-rw-r--r--gui/handlers.cpp5
-rw-r--r--gui/handlers.h1
-rw-r--r--gui/qml/main.qml3
-rw-r--r--pkg/backend/api.go4
-rw-r--r--pkg/backend/donate.go12
6 files changed, 26 insertions, 4 deletions
diff --git a/gui/backend.go b/gui/backend.go
index 9453d88..96f50de 100644
--- a/gui/backend.go
+++ b/gui/backend.go
@@ -40,6 +40,11 @@ func DonateAccepted() {
backend.DonateAccepted()
}
+//export DonateSeen
+func DonateSeen() {
+ backend.DonateSeen()
+}
+
//export SubscribeToEvent
func SubscribeToEvent(event string, f unsafe.Pointer) {
backend.SubscribeToEvent(event, f)
diff --git a/gui/handlers.cpp b/gui/handlers.cpp
index 6cafab5..8f0e0d0 100644
--- a/gui/handlers.cpp
+++ b/gui/handlers.cpp
@@ -37,6 +37,11 @@ void Backend::donateAccepted()
DonateAccepted();
}
+void Backend::donateSeen()
+{
+ DonateSeen();
+}
+
void Backend::login(QString username, QString password)
{
Login(toGoStr(username), toGoStr(password));
diff --git a/gui/handlers.h b/gui/handlers.h
index c342a97..8283645 100644
--- a/gui/handlers.h
+++ b/gui/handlers.h
@@ -35,6 +35,7 @@ public slots:
void switchOn();
void switchOff();
void donateAccepted();
+ void donateSeen();
void login(QString username, QString password);
void resetError(QString errlabel);
void resetNotification(QString label);
diff --git a/gui/qml/main.qml b/gui/qml/main.qml
index 4ac1972..aed08ea 100644
--- a/gui/qml/main.qml
+++ b/gui/qml/main.qml
@@ -21,11 +21,10 @@ ApplicationWindow {
onDataChanged: {
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.
if (ctx.donateDialog == 'true') {
console.debug(jsonModel.getJson())
donate.visible = true
+ backend.donateSeen()
}
if (ctx.loginDialog == 'true') {
console.debug(jsonModel.getJson())
diff --git a/pkg/backend/api.go b/pkg/backend/api.go
index 4390fef..a799b0e 100644
--- a/pkg/backend/api.go
+++ b/pkg/backend/api.go
@@ -68,6 +68,10 @@ func DonateAccepted() {
donateAccepted()
}
+func DonateSeen() {
+ donateSeen()
+}
+
func SubscribeToEvent(event string, f unsafe.Pointer) {
subscribe(event, f)
}
diff --git a/pkg/backend/donate.go b/pkg/backend/donate.go
index f87934a..c16c0f4 100644
--- a/pkg/backend/donate.go
+++ b/pkg/backend/donate.go
@@ -4,12 +4,12 @@ import (
"time"
)
-// runDonationReminder checks every hour if we need to show the reminder,
+// runDonationReminder checks every six hours if we need to show the reminder,
// and trigger the launching of the dialog if needed.
func runDonationReminder() {
go func() {
for {
- time.Sleep(time.Hour)
+ time.Sleep(time.Hour * 6)
if needsDonationReminder() {
showDonate()
}
@@ -21,6 +21,14 @@ func needsDonationReminder() bool {
return ctx.cfg.NeedsDonationReminder()
}
+/* to be called from the gui, the visibility toggle will be updated on the next
+ status change */
+func donateSeen() {
+ statusMutex.Lock()
+ defer statusMutex.Unlock()
+ ctx.DonateDialog = false
+}
+
func donateAccepted() {
statusMutex.Lock()
defer statusMutex.Unlock()