Added UpdaterSettings #81
This commit is contained in:
@@ -18,6 +18,8 @@
|
||||
#include "zeiterfassungsettings.h"
|
||||
#include "zeiterfassungapi.h"
|
||||
|
||||
#include "updatersettings.h"
|
||||
|
||||
UpdaterDialog::UpdaterDialog(MainWindow &mainWindow) :
|
||||
ZeiterfassungDialog(&mainWindow),
|
||||
ui(new Ui::UpdaterDialog),
|
||||
@@ -30,9 +32,7 @@ UpdaterDialog::UpdaterDialog(MainWindow &mainWindow) :
|
||||
connect(ui->buttonBox, &QDialogButtonBox::accepted, this, &UpdaterDialog::acceptedSlot);
|
||||
connect(ui->buttonBox, &QDialogButtonBox::rejected, this, &UpdaterDialog::rejectedSlot);
|
||||
|
||||
auto url = m_mainWindow.settings().value(QStringLiteral("UpdaterPlugin/url"),
|
||||
QStringLiteral("https://api.github.com/repos/0xFEEDC0DE64/QtZeiterfassung/releases")).toString();
|
||||
m_reply = m_mainWindow.erfassung().manager()->get(QNetworkRequest(QUrl(url)));
|
||||
m_reply = m_mainWindow.erfassung().manager()->get(QNetworkRequest(UpdaterSettings(mainWindow.settings()).url()));
|
||||
connect(m_reply, &QNetworkReply::finished, this, &UpdaterDialog::finished);
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@ UpdaterDialog::~UpdaterDialog()
|
||||
void UpdaterDialog::acceptedSlot()
|
||||
{
|
||||
if(ui->checkBoxDontShow->isChecked())
|
||||
m_mainWindow.settings().setValue(QStringLiteral("UpdaterPlugin/lastUpdateCheck"), QDate::currentDate());
|
||||
UpdaterSettings(m_mainWindow.settings()).setLastUpdateCheck(QDate::currentDate());
|
||||
|
||||
if(!QDesktopServices::openUrl(m_url))
|
||||
QMessageBox::warning(this, tr("Could not open default webbrowser!"), tr("Could not open default webbrowser!"));
|
||||
@@ -55,7 +55,7 @@ void UpdaterDialog::acceptedSlot()
|
||||
void UpdaterDialog::rejectedSlot()
|
||||
{
|
||||
if(ui->checkBoxDontShow->isChecked())
|
||||
m_mainWindow.settings().setValue(QStringLiteral("UpdaterPlugin/lastUpdateCheck"), QDate::currentDate());
|
||||
UpdaterSettings(m_mainWindow.settings()).setLastUpdateCheck(QDate::currentDate());
|
||||
|
||||
reject();
|
||||
}
|
||||
@@ -102,7 +102,7 @@ void UpdaterDialog::finished()
|
||||
}
|
||||
}
|
||||
|
||||
m_mainWindow.settings().setValue(QStringLiteral("UpdaterPlugin/lastUpdateCheck"), QDate::currentDate());
|
||||
UpdaterSettings(m_mainWindow.settings()).setLastUpdateCheck(QDate::currentDate());
|
||||
|
||||
deleteLater();
|
||||
}
|
||||
|
@@ -9,6 +9,7 @@
|
||||
#include "zeiterfassungsettings.h"
|
||||
#include "zeiterfassungapi.h"
|
||||
|
||||
#include "updatersettings.h"
|
||||
#include "updaterdialog.h"
|
||||
|
||||
UpdaterPlugin::UpdaterPlugin(QObject *parent) :
|
||||
@@ -33,7 +34,7 @@ UpdaterPlugin::UpdaterPlugin(QObject *parent) :
|
||||
|
||||
void UpdaterPlugin::attachTo(MainWindow &mainWindow)
|
||||
{
|
||||
if(mainWindow.settings().value(QStringLiteral("UpdaterPlugin/lastUpdateCheck")).toDate().isNull() ||
|
||||
mainWindow.settings().value(QStringLiteral("UpdaterPlugin/lastUpdateCheck")).toDate() < QDate::currentDate())
|
||||
auto lastUpdateCheck = UpdaterSettings(mainWindow.settings()).lastUpdateCheck();
|
||||
if(lastUpdateCheck.isNull() || lastUpdateCheck < QDate::currentDate())
|
||||
new UpdaterDialog(mainWindow);
|
||||
}
|
||||
|
@@ -17,10 +17,12 @@ DEPENDPATH += $$PWD/$${PROJECT_ROOT}/zeiterfassungcorelib $$PWD/$${PROJECT_ROOT}
|
||||
DEFINES += QT_DEPRECATED_WARNINGS QT_DISABLE_DEPRECATED_BEFORE=0x060000 QT_MESSAGELOGCONTEXT
|
||||
|
||||
HEADERS += updaterdialog.h \
|
||||
updaterplugin.h
|
||||
updaterplugin.h \
|
||||
updatersettings.h
|
||||
|
||||
SOURCES += updaterdialog.cpp \
|
||||
updaterplugin.cpp
|
||||
updaterplugin.cpp \
|
||||
updatersettings.cpp
|
||||
|
||||
FORMS += updaterdialog.ui
|
||||
|
||||
|
42
plugins/updaterplugin/updatersettings.cpp
Normal file
42
plugins/updaterplugin/updatersettings.cpp
Normal file
@@ -0,0 +1,42 @@
|
||||
#include "updatersettings.h"
|
||||
|
||||
#include "zeiterfassungsettings.h"
|
||||
|
||||
const QString UpdaterSettings::m_url("UpdaterPlugin/url");
|
||||
const QString UpdaterSettings::m_lastUpdateCheck("UpdaterPlugin/lastUpdateCheck");
|
||||
const QUrl UpdaterSettings::m_defaultUrl(QStringLiteral("https://api.github.com/repos/0xFEEDC0DE64/QtZeiterfassung/releases"));
|
||||
|
||||
UpdaterSettings::UpdaterSettings(ZeiterfassungSettings &settings, QObject *parent) :
|
||||
QObject(parent),
|
||||
m_settings(settings)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
QUrl UpdaterSettings::url() const
|
||||
{
|
||||
return m_settings.value(m_url, m_defaultUrl).toUrl();
|
||||
}
|
||||
|
||||
void UpdaterSettings::setUrl(const QUrl &url)
|
||||
{
|
||||
if(this->url() != url)
|
||||
{
|
||||
m_settings.setValue(m_url, url);
|
||||
Q_EMIT urlChanged(url);
|
||||
}
|
||||
}
|
||||
|
||||
QDate UpdaterSettings::lastUpdateCheck() const
|
||||
{
|
||||
return m_settings.value(m_lastUpdateCheck).toDate();
|
||||
}
|
||||
|
||||
void UpdaterSettings::setLastUpdateCheck(const QDate &lastUpdateCheck)
|
||||
{
|
||||
if(this->lastUpdateCheck() != lastUpdateCheck)
|
||||
{
|
||||
m_settings.setValue(m_lastUpdateCheck, lastUpdateCheck);
|
||||
Q_EMIT lastUpdateCheckChanged(lastUpdateCheck);
|
||||
}
|
||||
}
|
37
plugins/updaterplugin/updatersettings.h
Normal file
37
plugins/updaterplugin/updatersettings.h
Normal file
@@ -0,0 +1,37 @@
|
||||
#ifndef UPDATERSETTINGS_H
|
||||
#define UPDATERSETTINGS_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QUrl>
|
||||
#include <QDate>
|
||||
|
||||
class ZeiterfassungSettings;
|
||||
|
||||
class UpdaterSettings : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_PROPERTY(QUrl url READ url WRITE setUrl NOTIFY urlChanged)
|
||||
Q_PROPERTY(QDate lastUpdateCheck READ lastUpdateCheck WRITE setLastUpdateCheck NOTIFY lastUpdateCheckChanged)
|
||||
|
||||
public:
|
||||
explicit UpdaterSettings(ZeiterfassungSettings &settings, QObject *parent = nullptr);
|
||||
|
||||
QUrl url() const;
|
||||
void setUrl(const QUrl &url);
|
||||
|
||||
QDate lastUpdateCheck() const;
|
||||
void setLastUpdateCheck(const QDate &lastUpdateCheck);
|
||||
|
||||
Q_SIGNALS:
|
||||
void urlChanged(const QUrl &url);
|
||||
void lastUpdateCheckChanged(const QDate &lastUpdateCheck);
|
||||
|
||||
private:
|
||||
ZeiterfassungSettings &m_settings;
|
||||
|
||||
static const QString m_url;
|
||||
static const QString m_lastUpdateCheck;
|
||||
static const QUrl m_defaultUrl;
|
||||
};
|
||||
|
||||
#endif // UPDATERSETTINGS_H
|
Reference in New Issue
Block a user