ProjectExplorer: Make scanForFiles cancel-able

Change-Id: Icbc4fa4c84189bd470bd5720a674d11f3e485037
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
Tobias Hunger
2016-11-11 14:02:30 +01:00
committed by Tim Jenssen
parent 9252a3ae44
commit 04aa6f67dd

View File

@@ -237,6 +237,7 @@ static QList<FileNode *> scanForFilesRecursively(const Utils::FileName &director
double progressStart, double progressRange) double progressStart, double progressRange)
{ {
QList<FileNode *> result; QList<FileNode *> result;
const QDir baseDir = QDir(directory.toString()); const QDir baseDir = QDir(directory.toString());
// Do not follow directory loops: // Do not follow directory loops:
@@ -252,6 +253,9 @@ static QList<FileNode *> scanForFilesRecursively(const Utils::FileName &director
const double progressIncrement = progressRange / static_cast<double>(entries.count()); const double progressIncrement = progressRange / static_cast<double>(entries.count());
int lastIntProgress = 0; int lastIntProgress = 0;
for (const QFileInfo &entry : entries) { for (const QFileInfo &entry : entries) {
if (future && future->isCanceled())
return result;
const Utils::FileName entryName = Utils::FileName::fromString(entry.absoluteFilePath()); const Utils::FileName entryName = Utils::FileName::fromString(entry.absoluteFilePath());
if (!vcsControl || !vcsControl->isVcsFileOrDirectory(entryName)) { if (!vcsControl || !vcsControl->isVcsFileOrDirectory(entryName)) {
if (entry.isDir()) if (entry.isDir())