aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui/fileloader.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qmmpui/fileloader.cpp')
-rw-r--r--src/qmmpui/fileloader.cpp35
1 files changed, 14 insertions, 21 deletions
diff --git a/src/qmmpui/fileloader.cpp b/src/qmmpui/fileloader.cpp
index ef1caf8e1..6fc32cc3e 100644
--- a/src/qmmpui/fileloader.cpp
+++ b/src/qmmpui/fileloader.cpp
@@ -70,50 +70,43 @@ void FileLoader::addDirectory(const QString& s)
void FileLoader::run()
{
m_finished = false;
- while(!m_files.isEmpty() || !m_directories.isEmpty())
+ while(!m_paths.isEmpty() && !m_finished)
{
- if(!m_files.isEmpty())
+ QString path = m_paths.dequeue();
+
+ QFileInfo info(path);
+
+ if(info.isDir())
{
- addFile(m_files.dequeue());
+ addDirectory(path);
continue;
}
- if(!m_directories.isEmpty())
+ else if(info.isFile())
{
- addDirectory(m_directories.dequeue());
+ addFile(path);
continue;
}
}
}
-void FileLoader::loadFile(const QString &path)
+void FileLoader::load(const QString &path)
{
- m_files.enqueue(path);
- MetaDataManager::instance()->prepareForAnotherThread();
- m_filters = MetaDataManager::instance()->nameFilters();
- start(QThread::IdlePriority);
+ load(QStringList() << path);
}
-void FileLoader::loadFiles(const QStringList &paths)
+void FileLoader::load(const QStringList &paths)
{
- m_files << paths;
+ m_paths << paths;
MetaDataManager::instance()->prepareForAnotherThread();
m_filters = MetaDataManager::instance()->nameFilters();
start(QThread::IdlePriority);
}
-void FileLoader::loadDirectory(const QString &path)
-{
- m_directories.enqueue(path);
- m_filters = MetaDataManager::instance()->nameFilters();
- start(QThread::IdlePriority);
-}
-
void FileLoader::finish()
{
m_finished = true;
- m_files.clear();
- m_directories.clear();
wait();
+ m_paths.clear();
}
bool FileLoader::checkRestrictFilters(const QFileInfo &info)