diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2012-12-15 17:08:46 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2012-12-15 17:08:46 +0000 |
| commit | 70339a551a8b29c39655f20b7afdc40f9b23ffe0 (patch) | |
| tree | 2757d097dde935456e56b38c89f0b66ff0d853b1 /src/plugins/Ui/skinned/addurldialog.cpp | |
| parent | a3696462a25565ed76250c97fe92dac9abc15363 (diff) | |
| download | qmmp-70339a551a8b29c39655f20b7afdc40f9b23ffe0.tar.gz qmmp-70339a551a8b29c39655f20b7afdc40f9b23ffe0.tar.bz2 qmmp-70339a551a8b29c39655f20b7afdc40f9b23ffe0.zip | |
added http redirect support in the url dialog
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@3067 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Ui/skinned/addurldialog.cpp')
| -rw-r--r-- | src/plugins/Ui/skinned/addurldialog.cpp | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/plugins/Ui/skinned/addurldialog.cpp b/src/plugins/Ui/skinned/addurldialog.cpp index 2c353b135..1ad37b36a 100644 --- a/src/plugins/Ui/skinned/addurldialog.cpp +++ b/src/plugins/Ui/skinned/addurldialog.cpp @@ -24,7 +24,6 @@ #include <QNetworkRequest> #include <QNetworkReply> #include <QNetworkProxy> -#include <QUrl> #include <QMessageBox> #include <QClipboard> #include <qmmpui/playlistparser.h> @@ -119,12 +118,25 @@ void AddUrlDialog::accept( ) void AddUrlDialog::readResponse(QNetworkReply *reply) { - addButton->setEnabled(true); disconnect(m_http, SIGNAL(finished (QNetworkReply *)), 0, 0); if (reply->error() != QNetworkReply::NoError) QMessageBox::critical (this, tr("Error"), reply->errorString ()); else if (!urlComboBox->currentText().isEmpty()) { + QUrl url = reply->attribute(QNetworkRequest::RedirectionTargetAttribute).toUrl(); + + if(!url.isEmpty() && url != m_redirect_url) + { + m_redirect_url = url; + connect(m_http, SIGNAL(finished (QNetworkReply *)), SLOT(readResponse(QNetworkReply *))); + QNetworkRequest request(url); + request.setRawHeader("User-Agent", QString("qmmp/%1").arg(Qmmp::strVersion()).toAscii()); + m_http->get(request); + reply->deleteLater(); + return; + } + m_redirect_url.clear(); + QString s = urlComboBox->currentText(); PlaylistFormat* prs = PlaylistParser::instance()->findByPath(s); if (prs) @@ -133,6 +145,7 @@ void AddUrlDialog::readResponse(QNetworkReply *reply) QDialog::accept(); } } + addButton->setEnabled(true); reply->deleteLater(); } |
