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
6 changed files with 233 additions and 108 deletions
Showing only changes of commit 562569e9ba - Show all commits

View File

@@ -17,11 +17,23 @@ int PresenceSettings::interval() const
return m_settings.value(m_interval, m_defaultInterval).toInt();
}
void PresenceSettings::setInterval(int interval)
bool PresenceSettings::setInterval(int interval)
{
if(this->interval() != interval)
{
m_settings.setValue(m_interval, interval);
if(this->interval() == interval)
return true;
m_settings.setValue(m_interval, interval);
m_settings.sync();
const auto success = m_settings.status() == QSettings::NoError;
if(success)
Q_EMIT intervalChanged(interval);
else
{
Q_EMIT m_settings.saveErrorOccured();
Q_EMIT saveErrorOccured();
}
return success;
}

View File

@@ -13,9 +13,11 @@ public:
PresenceSettings(ZeiterfassungSettings &settings, QObject *parent = Q_NULLPTR);
int interval() const;
void setInterval(int interval);
bool setInterval(int interval);
Q_SIGNALS:
void saveErrorOccured();
void intervalChanged(int interval);
private: