Changeset - 70a6380ef381
[Not reviewed]
Hasan Yavuz Ă–ZDERYA - 8 years ago 2017-08-20 05:39:44
hy@ozderya.net
automatically check update at startup
6 files changed with 46 insertions and 1 deletions:
0 comments (0 inline, 0 general)
src/mainwindow.cpp
Show inline comments
 
@@ -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)
src/setting_defines.h
Show inline comments
 
@@ -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
src/updatecheckdialog.cpp
Show inline comments
 
@@ -17,6 +17,7 @@
 
  along with serialplot.  If not, see <http://www.gnu.org/licenses/>.
 
*/
 

	
 
#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 <a href=\"%2\">download</a>.")\
 
                        .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();
 
    }
 
}
src/updatecheckdialog.h
Show inline comments
 
@@ -21,6 +21,7 @@
 
#define UPDATECHECKDIALOG_H
 

	
 
#include <QDialog>
 
#include <QSettings>
 
#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;
src/updatecheckdialog.ui
Show inline comments
 
@@ -25,6 +25,16 @@
 
    </widget>
 
   </item>
 
   <item>
 
    <widget class="QCheckBox" name="cbPeriodic">
 
     <property name="text">
 
      <string>Check updates periodically</string>
 
     </property>
 
     <property name="checked">
 
      <bool>true</bool>
 
     </property>
 
    </widget>
 
   </item>
 
   <item>
 
    <widget class="QDialogButtonBox" name="buttonBox">
 
     <property name="orientation">
 
      <enum>Qt::Horizontal</enum>
src/updatechecker.cpp
Show inline comments
 
@@ -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);
 
}
0 comments (0 inline, 0 general)