aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui/fileloader.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2019-11-20 20:49:07 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2019-11-20 20:49:07 +0000
commite0d060ae41c3b6cffa934566cb4a419d2d9186ee (patch)
tree5fce28aaf8b69a080c74cba4104609fb12129f92 /src/qmmpui/fileloader.cpp
parented349221040319a9933b82c693a134a8144eb5da (diff)
downloadqmmp-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.cpp30
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())