From ab2f9b9c100cb8df5a74651b74aa8bea51edefa1 Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 <0xFEEDC0DE64@gmail.com> Date: Fri, 25 May 2018 19:15:21 +0200 Subject: [PATCH] UpdaterSettings error handling --- plugins/updaterplugin/updatersettings.cpp | 40 ++++++++++++++++++----- plugins/updaterplugin/updatersettings.h | 6 ++-- 2 files changed, 36 insertions(+), 10 deletions(-) diff --git a/plugins/updaterplugin/updatersettings.cpp b/plugins/updaterplugin/updatersettings.cpp index 2ea0fff..d752df1 100644 --- a/plugins/updaterplugin/updatersettings.cpp +++ b/plugins/updaterplugin/updatersettings.cpp @@ -18,13 +18,25 @@ QUrl UpdaterSettings::url() const return m_settings.value(m_url, m_defaultUrl).toUrl(); } -void UpdaterSettings::setUrl(const QUrl &url) +bool UpdaterSettings::setUrl(const QUrl &url) { - if(this->url() != url) - { - m_settings.setValue(m_url, url); + if(this->url() == url) + return true; + + m_settings.setValue(m_url, url); + + m_settings.sync(); + + const auto success = m_settings.status() == QSettings::NoError; + if(success) Q_EMIT urlChanged(url); + else + { + Q_EMIT m_settings.saveErrorOccured(); + Q_EMIT saveErrorOccured(); } + + return success; } QDate UpdaterSettings::lastUpdateCheck() const @@ -32,11 +44,23 @@ QDate UpdaterSettings::lastUpdateCheck() const return m_settings.value(m_lastUpdateCheck).toDate(); } -void UpdaterSettings::setLastUpdateCheck(const QDate &lastUpdateCheck) +bool UpdaterSettings::setLastUpdateCheck(const QDate &lastUpdateCheck) { - if(this->lastUpdateCheck() != lastUpdateCheck) - { - m_settings.setValue(m_lastUpdateCheck, lastUpdateCheck); + if(this->lastUpdateCheck() == lastUpdateCheck) + return true; + + m_settings.setValue(m_lastUpdateCheck, lastUpdateCheck); + + m_settings.sync(); + + const auto success = m_settings.status() == QSettings::NoError; + if(success) Q_EMIT lastUpdateCheckChanged(lastUpdateCheck); + else + { + Q_EMIT m_settings.saveErrorOccured(); + Q_EMIT saveErrorOccured(); } + + return success; } diff --git a/plugins/updaterplugin/updatersettings.h b/plugins/updaterplugin/updatersettings.h index 0eca1e4..f6998eb 100644 --- a/plugins/updaterplugin/updatersettings.h +++ b/plugins/updaterplugin/updatersettings.h @@ -16,12 +16,14 @@ public: explicit UpdaterSettings(ZeiterfassungSettings &settings, QObject *parent = Q_NULLPTR); QUrl url() const; - void setUrl(const QUrl &url); + bool setUrl(const QUrl &url); QDate lastUpdateCheck() const; - void setLastUpdateCheck(const QDate &lastUpdateCheck); + bool setLastUpdateCheck(const QDate &lastUpdateCheck); Q_SIGNALS: + void saveErrorOccured(); + void urlChanged(const QUrl &url); void lastUpdateCheckChanged(const QDate &lastUpdateCheck);