diff --git a/src/plugins/autotest/testcodeparser.cpp b/src/plugins/autotest/testcodeparser.cpp index da95b7273ee65dfd85e5b9287c436b5c89a97828..d98a5c94a3926b77622414a3bfa3a7323c908cdc 100644 --- a/src/plugins/autotest/testcodeparser.cpp +++ b/src/plugins/autotest/testcodeparser.cpp @@ -585,6 +585,8 @@ static void performParse(QFutureInterface<TestParseResult> &futureInterface, QmlJS::Snapshot qmlSnapshot = QmlJSTools::Internal::ModelManager::instance()->snapshot(); foreach (const QString &file, list) { + if (futureInterface.isCanceled()) + return; if (file.endsWith(QLatin1String(".qml"))) { checkQmlDocumentForTestCode(futureInterface, qmlSnapshot.document(file)); } else if (snapshot.contains(file)) { @@ -674,6 +676,7 @@ bool TestCodeParser::postponed(const QStringList &fileList) m_partialUpdatePostponed = false; m_postponedFiles.clear(); m_fullUpdatePostponed = true; + Core::ProgressManager::instance()->cancelTasks(Constants::TASK_PARSE); } else { // partial parse triggered, but full parse is postponed already, ignoring this if (m_fullUpdatePostponed)