namespace LocalMyList {
DirectoryScanTask::DirectoryScanTask(QObject *parent) :
- AbstractTask(parent)
+ AbstractTask(parent), m_skipKnownFiles(true)
{
}
return m_directory;
}
+bool DirectoryScanTask::skipKnownFiles() const
+{
+ return m_skipKnownFiles;
+}
+
QString DirectoryScanTask::taskSubject() const
{
return m_directory.canonicalPath();
m_directory = directory;
}
+void DirectoryScanTask::setSkipKnownFiles(bool skip)
+{
+ m_skipKnownFiles = skip;
+}
+
void DirectoryScanTask::start()
{
stack.push(qMakePair(m_directory, 0));
// qDebug() << "Queueing FILE " << entry.fileName();
if (!entry.size())
continue;
+
+ if (m_skipKnownFiles)
+ {
+ File f = db->getFileByPath(entry.canonicalFilePath());
+ if (f.fid)
+ continue;
+ }
+
QMetaObject::invokeMethod(MyList::instance(), "addFile", Qt::QueuedConnection, Q_ARG(QFileInfo, entry));
}
}
explicit DirectoryScanTask(QObject *parent = 0);
QDir directory() const;
+ bool skipKnownFiles() const;
QString taskSubject() const;
bool canUseThreads() const;
void start();
void setDirectory(QDir directory);
+ void setSkipKnownFiles(bool skip);
protected:
void workUnit();
QDir m_directory;
+ bool m_skipKnownFiles;
QStack<QPair<QDir, int > > stack;
};