diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2019-11-20 20:49:07 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2019-11-20 20:49:07 +0000 |
| commit | e0d060ae41c3b6cffa934566cb4a419d2d9186ee (patch) | |
| tree | 5fce28aaf8b69a080c74cba4104609fb12129f92 /src/qmmpui/fileloader.cpp | |
| parent | ed349221040319a9933b82c693a134a8144eb5da (diff) | |
| download | qmmp-e0d060ae41c3b6cffa934566cb4a419d2d9186ee.tar.gz qmmp-e0d060ae41c3b6cffa934566cb4a419d2d9186ee.tar.bz2 qmmp-e0d060ae41c3b6cffa934566cb4a419d2d9186ee.zip | |
added URL checking by regexp
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@9109 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/qmmpui/fileloader.cpp')
| -rw-r--r-- | src/qmmpui/fileloader.cpp | 30 |
1 files changed, 11 insertions, 19 deletions
diff --git a/src/qmmpui/fileloader.cpp b/src/qmmpui/fileloader.cpp index a03bb18c7..ecd92dc19 100644 --- a/src/qmmpui/fileloader.cpp +++ b/src/qmmpui/fileloader.cpp @@ -127,6 +127,7 @@ void FileLoader::insertPlayList(const QString &path, PlayListItem *before) else { QStringList protocols = MetaDataManager::instance()->protocols(); + QList<QRegularExpression> regExps = MetaDataManager::instance()->regExps(); QList<QRegExp> filters; for(const QString &pattern : MetaDataManager::instance()->nameFilters()) filters << QRegExp(pattern, Qt::CaseInsensitive, QRegExp::Wildcard); @@ -135,8 +136,11 @@ void FileLoader::insertPlayList(const QString &path, PlayListItem *before) QList<PlayListTrack *>::iterator it = tracks.begin(); while(it != tracks.end()) { - if((*it)->path().contains("://") && !protocols.contains((*it)->path().section("://", 0, 0))) + if((*it)->path().contains("://") && + !protocols.contains((*it)->path().section("://", 0, 0)) && + !MetaDataManager::hasMatch(regExps, (*it)->path())) { + delete (*it); it = tracks.erase(it); } @@ -145,26 +149,14 @@ void FileLoader::insertPlayList(const QString &path, PlayListItem *before) delete (*it); it = tracks.erase(it); } + else if(!MetaDataManager::hasMatch(filters, (*it)->path())) + { + delete (*it); + it = tracks.erase(it); + } else { - bool found = false; - for(const QRegExp &filter : qAsConst(filters)) - { - if(filter.exactMatch((*it)->path())) - { - found = true; - break; - } - } - if(!found) - { - delete (*it); - it = tracks.erase(it); - } - else - { - ++it; - } + ++it; } } if(!m_finished && !tracks.isEmpty()) |
