Improve error handling of QSettings saving [#88] #90

Merged
0xFEEDC0DE64 merged 9 commits from 88-settings-error-handling into master 2018-05-25 16:04:45 +02:00
10 changed files with 288 additions and 123 deletions
Showing only changes of commit 1ea4748f05 - Show all commits

View File

@@ -17,11 +17,23 @@ QUrl WeatherSettings::url() const
return m_settings.value(m_url, m_defaultUrl).toUrl();
}
void WeatherSettings::setUrl(const QUrl &url)
bool WeatherSettings::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;
}

View File

@@ -14,9 +14,11 @@ public:
WeatherSettings(ZeiterfassungSettings &settings, QObject *parent = Q_NULLPTR);
QUrl url() const;
void setUrl(const QUrl &url);
bool setUrl(const QUrl &url);
Q_SIGNALS:
void saveErrorOccured();
void urlChanged(const QUrl &url);
private: