diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2017-06-14 20:24:58 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2017-06-14 20:24:58 +0000 |
| commit | b2576ddc181d3758e3a57d9cac871ee7d7e2ef06 (patch) | |
| tree | 1dfd6331a91f153d4a693a0aa32a774e2e53e2ea /src/qmmpui/playlistdownloader.cpp | |
| parent | 9e3bcc8653f5e0500e9d0e4ee0c953e8bbf4ea4c (diff) | |
| download | qmmp-b2576ddc181d3758e3a57d9cac871ee7d7e2ef06.tar.gz qmmp-b2576ddc181d3758e3a57d9cac871ee7d7e2ef06.tar.bz2 qmmp-b2576ddc181d3758e3a57d9cac871ee7d7e2ef06.zip | |
improved playlist formats support
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@7237 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/qmmpui/playlistdownloader.cpp')
| -rw-r--r-- | src/qmmpui/playlistdownloader.cpp | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/src/qmmpui/playlistdownloader.cpp b/src/qmmpui/playlistdownloader.cpp index a88f18460..951877258 100644 --- a/src/qmmpui/playlistdownloader.cpp +++ b/src/qmmpui/playlistdownloader.cpp @@ -46,11 +46,13 @@ PlayListDownloader::PlayListDownloader(QObject *parent) : QObject(parent) } } -void PlayListDownloader::start(const QUrl &url) +void PlayListDownloader::start(const QUrl &url, PlayListModel *model) { + m_model = model; if(!PlayListParser::findByUrl(url)) //is it playlist? { - emit done(QStringList() << QString::fromLatin1(url.toEncoded())); //just send initial URL + m_model->add(url.toString()); + emit finished(true); return; } m_url = url; @@ -71,7 +73,7 @@ void PlayListDownloader::readResponse(QNetworkReply *reply) if(reply->error() != QNetworkReply::NoError) { - emit error(reply->errorString() + " (" + reply->error() + ")"); + emit finished(false, reply->errorString() + " (" + reply->error() + ")"); reply->deleteLater(); return; } @@ -93,6 +95,13 @@ void PlayListDownloader::readResponse(QNetworkReply *reply) if(reply == m_getReply) { m_getReply = 0; + + if(m_model.isNull()) + { + emit finished(true); + return; + } + QString contentType = reply->header(QNetworkRequest::ContentTypeHeader).toString(); qDebug("PlayListDownloader: content type: %s", qPrintable(contentType)); PlayListFormat *fmt = PlayListParser::findByMime(contentType); @@ -100,12 +109,12 @@ void PlayListDownloader::readResponse(QNetworkReply *reply) fmt = PlayListParser::findByUrl(m_url); if(fmt) { - QStringList list = fmt->decode(QString::fromUtf8(reply->readAll())); - emit done(list); + m_model->loadPlaylist(fmt->properties().shortName, reply->readAll()); + emit finished(true); } else { - emit error(tr("Unsupported playlist format")); + emit finished(false, tr("Unsupported playlist format")); } } reply->deleteLater(); |
