aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui/addurldialog.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2020-04-12 18:47:00 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2020-04-12 18:47:00 +0000
commitb79ef45402ab19327268233e450a12d76305bc69 (patch)
tree08c5fa7340daa74395dc8498e74d70a6bd3dd11a /src/qmmpui/addurldialog.cpp
parent8f2d09296e54f464cbb97e9eec572f3c1fb28e36 (diff)
downloadqmmp-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.cpp42
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);
+}