diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -550,6 +550,7 @@ void MainWindow::saveAllSettings(QSettin
plotMan->saveSettings(settings);
commandPanel.saveSettings(settings);
recordPanel.saveSettings(settings);
+ updateCheckDialog.saveSettings(settings);
}
void MainWindow::loadAllSettings(QSettings* settings)
@@ -562,6 +563,7 @@ void MainWindow::loadAllSettings(QSettin
plotMan->loadSettings(settings);
commandPanel.loadSettings(settings);
recordPanel.loadSettings(settings);
+ updateCheckDialog.loadSettings(settings);
}
void MainWindow::saveMWSettings(QSettings* settings)
diff --git a/src/setting_defines.h b/src/setting_defines.h
--- a/src/setting_defines.h
+++ b/src/setting_defines.h
@@ -30,6 +30,7 @@ const char SettingGroup_Channels[] = "Ch
const char SettingGroup_Plot[] = "Plot";
const char SettingGroup_Commands[] = "Commands";
const char SettingGroup_Record[] = "Record";
+const char SettingGroup_UpdateCheck[] = "UpdateCheck";
// mainwindow setting keys
const char SG_MainWindow_Size[] = "size";
@@ -103,4 +104,8 @@ const char SG_Record_Header[]
const char SG_Record_Separator[] = "separator";
const char SG_Record_DisableBuffering[] = "disableBuffering";
+// update check settings keys
+const char SG_UpdateCheck_Periodic[] = "periodicCheck";
+const char SG_UpdateCheck_LastCheck[] = "lastCheck";
+
#endif // SETTING_DEFINES_H
diff --git a/src/updatecheckdialog.cpp b/src/updatecheckdialog.cpp
--- a/src/updatecheckdialog.cpp
+++ b/src/updatecheckdialog.cpp
@@ -17,6 +17,7 @@
along with serialplot. If not, see .
*/
+#include "setting_defines.h"
#include "updatecheckdialog.h"
#include "ui_updatecheckdialog.h"
@@ -42,9 +43,9 @@ UpdateCheckDialog::UpdateCheckDialog(QWi
}
else
{
+ show();
text = QString("Found update to version %1. Click to download.")\
.arg(newVersion).arg(downloadUrl);
- qDebug() << text;
}
ui->label->setText(text);
@@ -66,3 +67,22 @@ void UpdateCheckDialog::closeEvent(QShow
{
if (updateChecker.isChecking()) updateChecker.cancelCheck();
}
+
+void UpdateCheckDialog::saveSettings(QSettings* settings)
+{
+ settings->beginGroup(SettingGroup_UpdateCheck);
+ settings->setValue(SG_UpdateCheck_Periodic, ui->cbPeriodic->isChecked());
+ settings->endGroup();
+}
+
+void UpdateCheckDialog::loadSettings(QSettings* settings)
+{
+ settings->beginGroup(SettingGroup_UpdateCheck);
+ ui->cbPeriodic->setChecked(settings->value(SG_UpdateCheck_Periodic).toBool());
+ settings->endGroup();
+
+ if (ui->cbPeriodic->isChecked())
+ {
+ updateChecker.checkUpdate();
+ }
+}
diff --git a/src/updatecheckdialog.h b/src/updatecheckdialog.h
--- a/src/updatecheckdialog.h
+++ b/src/updatecheckdialog.h
@@ -21,6 +21,7 @@
#define UPDATECHECKDIALOG_H
#include
+#include
#include "updatechecker.h"
namespace Ui {
@@ -35,6 +36,11 @@ public:
explicit UpdateCheckDialog(QWidget *parent = 0);
~UpdateCheckDialog();
+ /// Stores update settings into a `QSettings`.
+ void saveSettings(QSettings* settings);
+ /// Loads update settings from a `QSettings`.
+ void loadSettings(QSettings* settings);
+
private:
Ui::UpdateCheckDialog *ui;
UpdateChecker updateChecker;
diff --git a/src/updatecheckdialog.ui b/src/updatecheckdialog.ui
--- a/src/updatecheckdialog.ui
+++ b/src/updatecheckdialog.ui
@@ -25,6 +25,16 @@
-
+
+
+ Check updates periodically
+
+
+ true
+
+
+
+ -
Qt::Horizontal
diff --git a/src/updatechecker.cpp b/src/updatechecker.cpp
--- a/src/updatechecker.cpp
+++ b/src/updatechecker.cpp
@@ -47,6 +47,8 @@ bool UpdateChecker::isChecking() const
void UpdateChecker::checkUpdate()
{
+ if (isChecking()) return;
+
auto req = QNetworkRequest(QUrl(BB_DOWNLOADS_URL));
activeReply = nam.get(req);
}