WebRadioSettings error handling

This commit is contained in:
0xFEEDC0DE64
2018-05-25 19:33:40 +02:00
parent 1ea4748f05
commit 20b373bec7
2 changed files with 53 additions and 15 deletions

View File

@@ -31,13 +31,25 @@ QStringList WebRadioSettings::urls() const
return m_settings.value(m_urls, m_defaultUrls).toStringList(); return m_settings.value(m_urls, m_defaultUrls).toStringList();
} }
void WebRadioSettings::setUrls(const QStringList &urls) bool WebRadioSettings::setUrls(const QStringList &urls)
{ {
if(this->urls() != urls) if(this->urls() == urls)
{ return true;
m_settings.setValue(m_urls, urls);
m_settings.setValue(m_urls, urls);
m_settings.sync();
const auto success = m_settings.status() == QSettings::NoError;
if(success)
Q_EMIT urlsChanged(urls); Q_EMIT urlsChanged(urls);
else
{
Q_EMIT m_settings.saveErrorOccured();
Q_EMIT saveErrorOccured();
} }
return success;
} }
QString WebRadioSettings::lastUrl() const QString WebRadioSettings::lastUrl() const
@@ -45,13 +57,25 @@ QString WebRadioSettings::lastUrl() const
return m_settings.value(m_lastUrl).toString(); return m_settings.value(m_lastUrl).toString();
} }
void WebRadioSettings::setLastUrl(const QString &lastUrl) bool WebRadioSettings::setLastUrl(const QString &lastUrl)
{ {
if(this->lastUrl() != lastUrl) if(this->lastUrl() == lastUrl)
{ return true;
m_settings.setValue(m_lastUrl, lastUrl);
m_settings.setValue(m_lastUrl, lastUrl);
m_settings.sync();
const auto success = m_settings.status() == QSettings::NoError;
if(success)
Q_EMIT lastUrlChanged(lastUrl); Q_EMIT lastUrlChanged(lastUrl);
else
{
Q_EMIT m_settings.saveErrorOccured();
Q_EMIT saveErrorOccured();
} }
return success;
} }
int WebRadioSettings::volume() const int WebRadioSettings::volume() const
@@ -59,11 +83,23 @@ int WebRadioSettings::volume() const
return m_settings.value(m_volume, m_defaultVolume).toInt(); return m_settings.value(m_volume, m_defaultVolume).toInt();
} }
void WebRadioSettings::setVolume(int volume) bool WebRadioSettings::setVolume(int volume)
{ {
if(this->volume() != volume) if(this->volume() == volume)
{ return true;
m_settings.setValue(m_volume, volume);
m_settings.setValue(m_volume, volume);
m_settings.sync();
const auto success = m_settings.status() == QSettings::NoError;
if(success)
Q_EMIT volumeChanged(volume); Q_EMIT volumeChanged(volume);
else
{
Q_EMIT m_settings.saveErrorOccured();
Q_EMIT saveErrorOccured();
} }
return success;
} }

View File

@@ -16,15 +16,17 @@ public:
WebRadioSettings(ZeiterfassungSettings &settings, QObject *parent = Q_NULLPTR); WebRadioSettings(ZeiterfassungSettings &settings, QObject *parent = Q_NULLPTR);
QStringList urls() const; QStringList urls() const;
void setUrls(const QStringList &urls); bool setUrls(const QStringList &urls);
QString lastUrl() const; QString lastUrl() const;
void setLastUrl(const QString &lastUrl); bool setLastUrl(const QString &lastUrl);
int volume() const; int volume() const;
void setVolume(int volume); bool setVolume(int volume);
Q_SIGNALS: Q_SIGNALS:
void saveErrorOccured();
void urlsChanged(const QStringList &urls); void urlsChanged(const QStringList &urls);
void lastUrlChanged(const QString &lastUrl); void lastUrlChanged(const QString &lastUrl);
void volumeChanged(int volume); void volumeChanged(int volume);