diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2012-12-22 10:46:29 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2012-12-22 10:46:29 +0000 |
| commit | 954146ff9b69591f0cf3895e96922bb55ad88502 (patch) | |
| tree | b495690d6ed2a6b5251fd1e8a428b550354a0cba /src/qmmpui/playlistparser.cpp | |
| parent | 2b286b3f3713a224839b9444579046556b608c58 (diff) | |
| download | qmmp-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.cpp | 29 |
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; } |
