diff --git a/plugins/presenceplugin/presencesettings.cpp b/plugins/presenceplugin/presencesettings.cpp index d1e315c..eb616fe 100644 --- a/plugins/presenceplugin/presencesettings.cpp +++ b/plugins/presenceplugin/presencesettings.cpp @@ -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; } diff --git a/plugins/presenceplugin/presencesettings.h b/plugins/presenceplugin/presencesettings.h index 1fb2610..58f83ad 100644 --- a/plugins/presenceplugin/presencesettings.h +++ b/plugins/presenceplugin/presencesettings.h @@ -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: