From a66f3e8cc08c849d002880f6d4087245ca7b8564 Mon Sep 17 00:00:00 2001
From: Marco Bubke <marco.bubke@qt.io>
Date: Mon, 20 Feb 2017 13:26:30 +0100
Subject: [PATCH] Clang: Cancel query progress bar

Change-Id: I1b8a4ec052a548e5ed09f39c3f0d3c87b13a6bd4
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
---
 src/plugins/clangrefactoring/qtcreatorsearchhandle.cpp | 6 ++++++
 src/plugins/clangrefactoring/qtcreatorsearchhandle.h   | 2 ++
 src/plugins/clangrefactoring/searchhandle.h            | 2 +-
 3 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/plugins/clangrefactoring/qtcreatorsearchhandle.cpp b/src/plugins/clangrefactoring/qtcreatorsearchhandle.cpp
index 2364931ce60..67b073c7b1d 100644
--- a/src/plugins/clangrefactoring/qtcreatorsearchhandle.cpp
+++ b/src/plugins/clangrefactoring/qtcreatorsearchhandle.cpp
@@ -55,6 +55,12 @@ void QtCreatorSearchHandle::setResultCounter(uint counter)
     promise.setProgressValue(counter);
 }
 
+void QtCreatorSearchHandle::cancel()
+{
+    SearchHandle::cancel();
+    promise.reportCanceled();
+}
+
 void QtCreatorSearchHandle::finishSearch()
 {
     searchResult->finishSearch(false);
diff --git a/src/plugins/clangrefactoring/qtcreatorsearchhandle.h b/src/plugins/clangrefactoring/qtcreatorsearchhandle.h
index e0dc80a0c6f..8e391e26886 100644
--- a/src/plugins/clangrefactoring/qtcreatorsearchhandle.h
+++ b/src/plugins/clangrefactoring/qtcreatorsearchhandle.h
@@ -45,6 +45,8 @@ public:
     void setExpectedResultCount(uint count) override;
     void setResultCounter(uint counter) override;
 
+    void cancel() override;
+
     void finishSearch() override;
 
 private:
diff --git a/src/plugins/clangrefactoring/searchhandle.h b/src/plugins/clangrefactoring/searchhandle.h
index 185be306a2e..e9025f3511f 100644
--- a/src/plugins/clangrefactoring/searchhandle.h
+++ b/src/plugins/clangrefactoring/searchhandle.h
@@ -45,7 +45,7 @@ public:
 
     virtual void finishSearch() = 0;
 
-    void cancel();
+    virtual void cancel();
 
     void setRefactoringServer(ClangBackEnd::RefactoringServerInterface *server);
 
-- 
GitLab