From 157b69f61f853e1487cb4f77a218d3fd3b1507bf Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Thu, 21 Nov 2013 07:10:51 +0000 Subject: improved file loader git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@3920 90c681e8-e032-0410-971d-27865f9a5e38 --- src/qmmpui/fileloader.cpp | 35 ++++++++++++++--------------------- 1 file changed, 14 insertions(+), 21 deletions(-) (limited to 'src/qmmpui/fileloader.cpp') 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) -- cgit v1.2.3-13-gbd6f