Implemented changed signals in WebRadioSettings #76

This commit is contained in:
Daniel Brunner
2018-03-24 15:26:40 +01:00
parent 099a4593c9
commit 1ce4232224
2 changed files with 54 additions and 19 deletions

View File

@@ -2,6 +2,24 @@
#include "zeiterfassungsettings.h"
const QString WebRadioSettings::m_urls("WebRadioPlugin/urls");
const QString WebRadioSettings::m_lastUrl("WebRadioPlugin/lastUrl");
const QString WebRadioSettings::m_volume("WebRadioPlugin/volume");
const QStringList WebRadioSettings::m_defaultUrls {
QStringLiteral("http://stream.drumandbass.fm:9002"),
QStringLiteral("http://stream.trap.fm:6002"),
QStringLiteral("http://stream.dubbase.fm:7002"),
QStringLiteral("http://lw1.mp3.tb-group.fm/hb.mp3"),
QStringLiteral("http://lw1.mp3.tb-group.fm/tb.mp3"),
QStringLiteral("http://lw1.mp3.tb-group.fm/tt.mp3"),
QStringLiteral("http://lw1.mp3.tb-group.fm/ht.mp3"),
QStringLiteral("http://lw1.mp3.tb-group.fm/trb.mp3"),
QStringLiteral("http://lw1.mp3.tb-group.fm/ct.mp3"),
QStringLiteral("http://lw1.mp3.tb-group.fm/clt.mp3"),
QStringLiteral("https://live.helsinki.at:8088/live160.ogg")
};
const int WebRadioSettings::m_defaultVolume(100);
WebRadioSettings::WebRadioSettings(ZeiterfassungSettings &settings) :
m_settings(settings)
{
@@ -9,42 +27,42 @@ WebRadioSettings::WebRadioSettings(ZeiterfassungSettings &settings) :
QStringList WebRadioSettings::urls() const
{
return m_settings.value(QStringLiteral("WebRadioPlugin/urls"), QStringList {
QStringLiteral("http://stream.drumandbass.fm:9002"),
QStringLiteral("http://stream.trap.fm:6002"),
QStringLiteral("http://stream.dubbase.fm:7002"),
QStringLiteral("http://lw1.mp3.tb-group.fm/hb.mp3"),
QStringLiteral("http://lw1.mp3.tb-group.fm/tb.mp3"),
QStringLiteral("http://lw1.mp3.tb-group.fm/tt.mp3"),
QStringLiteral("http://lw1.mp3.tb-group.fm/ht.mp3"),
QStringLiteral("http://lw1.mp3.tb-group.fm/trb.mp3"),
QStringLiteral("http://lw1.mp3.tb-group.fm/ct.mp3"),
QStringLiteral("http://lw1.mp3.tb-group.fm/clt.mp3"),
QStringLiteral("https://live.helsinki.at:8088/live160.ogg")
}).toStringList();
return m_settings.value(m_urls, m_defaultUrls).toStringList();
}
void WebRadioSettings::setUrls(const QStringList &urls)
{
m_settings.setValue(QStringLiteral("WebRadioPlugin/urls"), urls);
if(this->urls() != urls)
{
m_settings.setValue(m_urls, urls);
Q_EMIT urlsChanged(urls);
}
}
QString WebRadioSettings::lastUrl() const
{
return m_settings.value(QStringLiteral("WebRadioPlugin/lastUrl")).toString();
return m_settings.value(m_lastUrl).toString();
}
void WebRadioSettings::setLastUrl(const QString &lastUrl)
{
m_settings.setValue(QStringLiteral("WebRadioPlugin/lastUrl"), lastUrl);
if(this->lastUrl() != lastUrl)
{
m_settings.setValue(m_lastUrl, lastUrl);
Q_EMIT lastUrlChanged(lastUrl);
}
}
int WebRadioSettings::volume() const
{
return m_settings.value(QStringLiteral("WebRadioPlugin/volume"), 100).toInt();
return m_settings.value(m_volume, m_defaultVolume).toInt();
}
void WebRadioSettings::setVolume(int volume)
{
m_settings.setValue(QStringLiteral("WebRadioPlugin/volume"), volume);
if(this->volume() != volume)
{
m_settings.setValue(m_volume, volume);
Q_EMIT volumeChanged(volume);
}
}

View File

@@ -1,12 +1,18 @@
#ifndef WEBRADIOSETTINGS_H
#define WEBRADIOSETTINGS_H
#include <QObject>
#include <QUrl>
class ZeiterfassungSettings;
class WebRadioSettings
class WebRadioSettings : public QObject
{
Q_OBJECT
Q_PROPERTY(QStringList urls READ urls WRITE setUrls NOTIFY urlsChanged)
Q_PROPERTY(QString lastUrl READ lastUrl WRITE setLastUrl NOTIFY lastUrlChanged)
Q_PROPERTY(int volume READ volume WRITE setVolume NOTIFY volumeChanged)
public:
WebRadioSettings(ZeiterfassungSettings &settings);
@@ -19,8 +25,19 @@ public:
int volume() const;
void setVolume(int volume);
Q_SIGNALS:
void urlsChanged(const QStringList &urls);
void lastUrlChanged(const QString &lastUrl);
void volumeChanged(int volume);
private:
ZeiterfassungSettings &m_settings;
static const QString m_urls;
static const QString m_lastUrl;
static const QString m_volume;
static const QStringList m_defaultUrls;
static const int m_defaultVolume;
};
#endif // WEBRADIOSETTINGS_H