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();
}
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.sync();
const auto success = m_settings.status() == QSettings::NoError;
if(success)
Q_EMIT urlsChanged(urls);
else
{
Q_EMIT m_settings.saveErrorOccured();
Q_EMIT saveErrorOccured();
}
return success;
}
QString WebRadioSettings::lastUrl() const
@@ -45,13 +57,25 @@ QString WebRadioSettings::lastUrl() const
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.sync();
const auto success = m_settings.status() == QSettings::NoError;
if(success)
Q_EMIT lastUrlChanged(lastUrl);
else
{
Q_EMIT m_settings.saveErrorOccured();
Q_EMIT saveErrorOccured();
}
return success;
}
int WebRadioSettings::volume() const
@@ -59,11 +83,23 @@ int WebRadioSettings::volume() const
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.sync();
const auto success = m_settings.status() == QSettings::NoError;
if(success)
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);
QStringList urls() const;
void setUrls(const QStringList &urls);
bool setUrls(const QStringList &urls);
QString lastUrl() const;
void setLastUrl(const QString &lastUrl);
bool setLastUrl(const QString &lastUrl);
int volume() const;
void setVolume(int volume);
bool setVolume(int volume);
Q_SIGNALS:
void saveErrorOccured();
void urlsChanged(const QStringList &urls);
void lastUrlChanged(const QString &lastUrl);
void volumeChanged(int volume);