diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2013-11-21 07:10:51 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2013-11-21 07:10:51 +0000 |
| commit | 157b69f61f853e1487cb4f77a218d3fd3b1507bf (patch) | |
| tree | eed388ad835da6867411655333988f5c1f196561 /src/qmmpui/fileloader.cpp | |
| parent | 10c96554c175b0a73a05e78e9777a1e94099ef3d (diff) | |
| download | qmmp-157b69f61f853e1487cb4f77a218d3fd3b1507bf.tar.gz qmmp-157b69f61f853e1487cb4f77a218d3fd3b1507bf.tar.bz2 qmmp-157b69f61f853e1487cb4f77a218d3fd3b1507bf.zip | |
improved file loader
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@3920 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/qmmpui/fileloader.cpp')
| -rw-r--r-- | src/qmmpui/fileloader.cpp | 35 |
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) |
