Improve error handling of QSettings saving [#88] #90
@@ -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;
|
||||
}
|
||||
|
@@ -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:
|
||||
|
Reference in New Issue
Block a user