diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2020-04-12 18:47:00 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2020-04-12 18:47:00 +0000 |
| commit | b79ef45402ab19327268233e450a12d76305bc69 (patch) | |
| tree | 08c5fa7340daa74395dc8498e74d70a6bd3dd11a /src/qmmpui/addurldialog.cpp | |
| parent | 8f2d09296e54f464cbb97e9eec572f3c1fb28e36 (diff) | |
| download | qmmp-b79ef45402ab19327268233e450a12d76305bc69.tar.gz qmmp-b79ef45402ab19327268233e450a12d76305bc69.tar.bz2 qmmp-b79ef45402ab19327268233e450a12d76305bc69.zip | |
improved remote playlists support
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@9334 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/qmmpui/addurldialog.cpp')
| -rw-r--r-- | src/qmmpui/addurldialog.cpp | 42 |
1 files changed, 32 insertions, 10 deletions
diff --git a/src/qmmpui/addurldialog.cpp b/src/qmmpui/addurldialog.cpp index 1b89e5aee..c1f06b39b 100644 --- a/src/qmmpui/addurldialog.cpp +++ b/src/qmmpui/addurldialog.cpp @@ -99,27 +99,43 @@ void AddUrlDialog::accept() return; } - QString s = urlComboBox->currentText().trimmed(); + QString path = urlComboBox->currentText().trimmed(); - if(!s.startsWith("http://") && !s.contains("://")) - s.prepend("http://"); + if(QFile::exists(path)) //is local file + { + m_model->add(path); + addToHistory(path); + QDialog::accept(); + return; + } - if(!MetaDataManager::instance()->protocols().contains(QUrl(s).scheme())) + if(!path.startsWith("http://") && !path.contains("://")) + path.prepend("http://"); + + if(MetaDataManager::hasMatch(MetaDataManager::instance()->regExps(), path)) { - qWarning("AddUrlDialog: unsupported protocol"); + addToHistory(path); + m_model->add(path); QDialog::accept(); return; } - m_history.removeAll(s); - m_history.prepend(s); + if (path.startsWith("http://") || path.startsWith("https://")) //try to download playlist + { + m_downloader->start(QUrl(path), m_model); + addToHistory(path); + return; + } - if (s.startsWith("http://") || s.startsWith("https://")) //try to download playlist + if(!MetaDataManager::instance()->protocols().contains(QUrl(path).scheme())) { - m_downloader->start(QUrl(s), m_model); + qWarning("AddUrlDialog: unsupported protocol"); + QDialog::reject(); return; } - m_model->add(s); + + addToHistory(path); + m_model->add(path); QDialog::accept(); } @@ -127,3 +143,9 @@ void AddUrlDialog::setModel(PlayListModel *m) { m_model = m; } + +void AddUrlDialog::addToHistory(const QString &path) +{ + m_history.removeAll(path); + m_history.prepend(path); +} |
