aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui/fileloader.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2013-11-21 07:10:51 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2013-11-21 07:10:51 +0000
commit157b69f61f853e1487cb4f77a218d3fd3b1507bf (patch)
treeeed388ad835da6867411655333988f5c1f196561 /src/qmmpui/fileloader.cpp
parent10c96554c175b0a73a05e78e9777a1e94099ef3d (diff)
downloadqmmp-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.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)