From 9753173c9f1199dc0ebc42474b6b6b3aa5bc0067 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Fri, 28 Jun 2019 01:35:58 +0200 Subject: [PATCH] Ref T554, trigger auto publish dialog when shutting down --- src/swiftguistandard/swiftguistd.cpp | 38 +++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/src/swiftguistandard/swiftguistd.cpp b/src/swiftguistandard/swiftguistd.cpp index 8542f10fb..8383ad7c9 100644 --- a/src/swiftguistandard/swiftguistd.cpp +++ b/src/swiftguistandard/swiftguistd.cpp @@ -161,8 +161,18 @@ void SwiftGuiStd::closeEvent(QCloseEvent *event) return; } + if (this->triggerAutoPublishDialog()) + { + event->ignore(); + return; + } + // save settings - if (sGui->showCloseDialog(this, event) == QDialog::Rejected) { return; } + if (sGui->showCloseDialog(this, event) == QDialog::Rejected) + { + // already ignored + return; + } } this->performGracefulShutdown(); } @@ -554,3 +564,29 @@ void SwiftGuiStd::onShowOverlayInlineTextMessageCallsign(const CCallsign &callsi if (!sGui || sGui->isShuttingDown()) { return; } ui->fr_CentralFrameInside->showOverlayInlineTextMessage(callsign); } + +bool SwiftGuiStd::triggerAutoPublishDialog() +{ + if (!CAutoPublishData::existAutoPublishFiles()) { return false; } + + constexpr qint64 deltaT = 48 * 60 * 60 * 1000; + const qint64 lastDialogTs = m_lastAutoPublish.get(); + bool showAutoPublish = lastDialogTs < 0 || (QDateTime::currentMSecsSinceEpoch() - lastDialogTs) > deltaT; + if (!showAutoPublish) { return false; } + + const QMessageBox::StandardButton reply = QMessageBox::question( + this, + QStringLiteral("Upload data?"), + QStringLiteral("Do you want to help improving swift by uploading anonymized data?"), + QMessageBox::Yes | QMessageBox::No); + + if (reply != QMessageBox::Yes) + { + m_lastAutoPublish.set(QDateTime::currentMSecsSinceEpoch()); + return false; + } + + this->autoPublishDialog(); // updates m_lastAutoPublish + return true; +} +