diff --git a/streams/providers.xml b/streams/providers.xml
index e712b3a1e..aba853243 100644
--- a/streams/providers.xml
+++ b/streams/providers.xml
@@ -1,72 +1,72 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/streams/webstreams.cpp b/streams/webstreams.cpp
index dee0cd05e..1c936b5d5 100644
--- a/streams/webstreams.cpp
+++ b/streams/webstreams.cpp
@@ -50,12 +50,14 @@ QList WebStream::getAll()
if (doc.isStartElement() && QLatin1String("stream")==doc.name()) {
QString name=doc.attributes().value("name").toString();
+ QString icon=doc.attributes().value("icon").toString();
+ QString region=doc.attributes().value("region").toString();
unsigned int type=doc.attributes().value("type").toString().toUInt();
QUrl url=QUrl(doc.attributes().value("url").toString());
switch (type) {
- case WS_IceCast: providers.append(new IceCastWebStream(name, doc.attributes().value("region").toString(), url)); break;
- case WS_SomaFm: providers.append(new SomaFmWebStream(name, doc.attributes().value("region").toString(), url)); break;
- case WS_Radio: providers.append(new RadioWebStream(name, doc.attributes().value("region").toString(), url)); break;
+ case WS_IceCast: providers.append(new IceCastWebStream(name, icon, region, url)); break;
+ case WS_SomaFm: providers.append(new SomaFmWebStream(name, icon, region, url)); break;
+ case WS_Radio: providers.append(new RadioWebStream(name, icon, region, url)); break;
default: break;
}
}
@@ -107,7 +109,7 @@ void WebStream::downloadFinished()
if (streams.isEmpty()) {
emit error(i18nc("message \n url", "No streams downloaded from %1\n(%2)").arg(name).arg(url.toString()));
} else {
- StreamsModel::self()->add(name, streams);
+ StreamsModel::self()->add(name, icon, streams);
}
} else {
emit error(i18nc("message \n url", "Failed to download streams from %1\n(%2)").arg(name).arg(url.toString()));
diff --git a/streams/webstreams.h b/streams/webstreams.h
index d4b876401..725eda67f 100644
--- a/streams/webstreams.h
+++ b/streams/webstreams.h
@@ -37,13 +37,14 @@ public:
static QList getAll();
static WebStream * get(const QUrl &url);
- WebStream(const QString &n, const QString &r, const QUrl &u)
- : name(n), region(r), url(u), job(0) { }
+ WebStream(const QString &n, const QString &i, const QString &r, const QUrl &u)
+ : name(n),icon(i), region(r), url(u), job(0) { }
virtual ~WebStream() { }
virtual QList parse(QIODevice *dev)=0;
const QString & getName() const { return name; }
+ const QString & getIcon() const { return icon; }
const QString & getRegion() const { return region; }
const QUrl & getUrl() const { return url; }
bool isDownloading() const { return 0!=job; }
@@ -59,6 +60,7 @@ private Q_SLOTS:
protected:
QString name;
+ QString icon;
QString region;
QUrl url;
QNetworkReply *job;
@@ -67,24 +69,24 @@ protected:
class IceCastWebStream : public WebStream
{
public:
- IceCastWebStream(const QString &n, const QString &r, const QUrl &u)
- : WebStream(n, r, u) { }
+ IceCastWebStream(const QString &n, const QString &i, const QString &r, const QUrl &u)
+ : WebStream(n, i, r, u) { }
QList parse(QIODevice *dev);
};
class SomaFmWebStream : public WebStream
{
public:
- SomaFmWebStream(const QString &n, const QString &r, const QUrl &u)
- : WebStream(n, r, u) { }
+ SomaFmWebStream(const QString &n, const QString &i, const QString &r, const QUrl &u)
+ : WebStream(n, i, r, u) { }
QList parse(QIODevice *dev);
};
class RadioWebStream : public WebStream
{
public:
- RadioWebStream(const QString &n, const QString &r, const QUrl &u)
- : WebStream(n, r, u) { }
+ RadioWebStream(const QString &n, const QString &i, const QString &r, const QUrl &u)
+ : WebStream(n, i, r, u) { }
QList parse(QIODevice *dev);
};