aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui/playlistparser.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2012-12-22 10:46:29 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2012-12-22 10:46:29 +0000
commit954146ff9b69591f0cf3895e96922bb55ad88502 (patch)
treeb495690d6ed2a6b5251fd1e8a428b550354a0cba /src/qmmpui/playlistparser.cpp
parent2b286b3f3713a224839b9444579046556b608c58 (diff)
downloadqmmp-954146ff9b69591f0cf3895e96922bb55ad88502.tar.gz
qmmp-954146ff9b69591f0cf3895e96922bb55ad88502.tar.bz2
qmmp-954146ff9b69591f0cf3895e96922bb55ad88502.zip
playlist format api cleanup
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@3088 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/qmmpui/playlistparser.cpp')
-rw-r--r--src/qmmpui/playlistparser.cpp29
1 files changed, 18 insertions, 11 deletions
diff --git a/src/qmmpui/playlistparser.cpp b/src/qmmpui/playlistparser.cpp
index aa14ec214..7f14901a5 100644
--- a/src/qmmpui/playlistparser.cpp
+++ b/src/qmmpui/playlistparser.cpp
@@ -18,9 +18,10 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
-#include <QtGui>
-#include <QObject>
+#include <QPluginLoader>
+#include <QRegExp>
#include <QList>
+#include <QDir>
#include <QApplication>
#include <qmmp/qmmp.h>
#include "playlistformat.h"
@@ -34,22 +35,28 @@ QList<PlayListFormat*> *PlayListParser::formats()
return m_formats;
}
-PlayListFormat *PlayListParser::findByPath(const QString &filePath)
+QStringList PlayListParser::nameFilters()
{
checkFormats();
- QString ext;
- if(filePath.contains("://")) //is it url?
+ QStringList filters;
+ foreach(PlayListFormat* format, *m_formats)
{
- QString p = QUrl(filePath).encodedPath();
- ext = QFileInfo(p).suffix().toLower();
+ filters << format->properties().filters;
}
- else
- ext = QFileInfo(filePath).suffix().toLower();
+ return filters;
+}
+PlayListFormat *PlayListParser::findByPath(const QString &filePath)
+{
+ checkFormats();
foreach(PlayListFormat* format, *m_formats)
{
- if (format->hasFormat(ext))
- return format;
+ foreach(QString filter, format->properties().filters)
+ {
+ QRegExp r(filter, Qt::CaseInsensitive, QRegExp::Wildcard);
+ if(r.exactMatch(filePath))
+ return format;
+ }
}
return 0;
}