aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui/addurldialog.cpp
diff options
context:
space:
mode:
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);
+}