From 3d8f42097b10f14334525eca20bd30bcd75a8eba Mon Sep 17 00:00:00 2001 From: Filippo Cucchetto Date: Sat, 3 Dec 2016 12:41:44 +0100 Subject: [PATCH] Nim: Simplified project scan by removing QFutureInterface Change-Id: I60a0d3354083215661def0acd4c26c1ece00dea7 Reviewed-by: Eike Ziller --- src/plugins/nim/project/nimproject.cpp | 21 +++++++-------------- src/plugins/nim/project/nimproject.h | 1 - 2 files changed, 7 insertions(+), 15 deletions(-) diff --git a/src/plugins/nim/project/nimproject.cpp b/src/plugins/nim/project/nimproject.cpp index 3d967dce2f7..f8cd313f3ae 100644 --- a/src/plugins/nim/project/nimproject.cpp +++ b/src/plugins/nim/project/nimproject.cpp @@ -65,7 +65,6 @@ NimProject::NimProject(NimProjectManager *projectManager, const QString &fileNam m_projectScanTimer.setSingleShot(true); connect(&m_projectScanTimer, &QTimer::timeout, this, &NimProject::collectProjectFiles); - m_futureWatcher.setFuture(m_futureInterface.future()); connect(&m_futureWatcher, &QFutureWatcher>::finished, this, &NimProject::updateProject); collectProjectFiles(); @@ -102,19 +101,13 @@ void NimProject::scheduleProjectScan() void NimProject::collectProjectFiles() { m_lastProjectScan.start(); - QTC_ASSERT(!m_futureInterface.isRunning(), return); - - runAsync([this]() { - m_futureInterface.reportStarted(); - QList nodes - = FileNode::scanForFiles(projectDirectory(), - [](const FileName &fn) { return new FileNode(fn, FileType::Source, false); }, - &m_futureInterface); - m_futureInterface.setProgressValue(m_futureInterface.progressMaximum()); - m_futureInterface.reportResult(nodes); - m_futureInterface.reportFinished(); + QTC_ASSERT(!m_futureWatcher.future().isRunning(), return); + FileName prjDir = projectDirectory(); + QFuture> future = Utils::runAsync([prjDir] { + return FileNode::scanForFiles(prjDir, [](const FileName &fn) { return new FileNode(fn, FileType::Source, false); }); }); - Core::ProgressManager::addTask(m_futureInterface.future(), tr("Scanning for Nim files"), "Nim.Project.Scan"); + m_futureWatcher.setFuture(future); + Core::ProgressManager::addTask(future, tr("Scanning for Nim files"), "Nim.Project.Scan"); } void NimProject::updateProject() @@ -122,7 +115,7 @@ void NimProject::updateProject() QStringList oldFiles = m_files; m_files.clear(); - QList fileNodes = Utils::filtered(m_futureInterface.future().result(), + QList fileNodes = Utils::filtered(m_futureWatcher.future().result(), [](const FileNode *fn) { const QString fileName = fn->filePath().fileName(); return !fileName.endsWith(".nimproject", HostOsInfo::fileNameCaseSensitivity()) diff --git a/src/plugins/nim/project/nimproject.h b/src/plugins/nim/project/nimproject.h index 4c611af3815..3a1382574dd 100644 --- a/src/plugins/nim/project/nimproject.h +++ b/src/plugins/nim/project/nimproject.h @@ -59,7 +59,6 @@ private: void updateProject(); QStringList m_files; - QFutureInterface> m_futureInterface; QFutureWatcher> m_futureWatcher; QElapsedTimer m_lastProjectScan;