summaryrefslogtreecommitdiff
path: root/src/plugins/clangcodemodel
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@qt.io>2018-04-26 12:28:00 +0000
committerThe Qt Project <gerrit-noreply@qt-project.org>2018-04-26 12:28:00 +0000
commitc1bfc9d0a45c8e1c891cc20d251da5e3dfd6a10d (patch)
treeadfd42b81dc02b12d91fd45f3cbe5c6347b16bcc /src/plugins/clangcodemodel
parente0c4da30a62630d39b8b04ee58da1c18b5eeb598 (diff)
parent62050437c3fc088d6bafc2fdce8bb6a7a3ae9394 (diff)
downloadqt-creator-c1bfc9d0a45c8e1c891cc20d251da5e3dfd6a10d.tar.gz
Merge "Merge remote-tracking branch 'origin/4.6'"
Diffstat (limited to 'src/plugins/clangcodemodel')
-rw-r--r--src/plugins/clangcodemodel/clangrefactoringengine.cpp12
-rw-r--r--src/plugins/clangcodemodel/clangrefactoringengine.h2
2 files changed, 9 insertions, 5 deletions
diff --git a/src/plugins/clangcodemodel/clangrefactoringengine.cpp b/src/plugins/clangcodemodel/clangrefactoringengine.cpp
index d639e27667..bb985a650e 100644
--- a/src/plugins/clangcodemodel/clangrefactoringengine.cpp
+++ b/src/plugins/clangcodemodel/clangrefactoringengine.cpp
@@ -51,10 +51,14 @@ void RefactoringEngine::startLocalRenaming(const CppTools::CursorInEditor &data,
if (cursorFuture.isCanceled())
return defaultCallback();
- QObject::connect(&m_watcher, &FutureCursorWatcher::finished, [=]() {
- if (m_watcher.isCanceled())
+ if (m_watcher)
+ m_watcher->cancel();
+
+ m_watcher.reset(new FutureCursorWatcher());
+ QObject::connect(m_watcher.get(), &FutureCursorWatcher::finished, [=]() {
+ if (m_watcher->isCanceled())
return defaultCallback();
- const CppTools::CursorInfo info = m_watcher.result();
+ const CppTools::CursorInfo info = m_watcher->result();
if (info.useRanges.empty())
return defaultCallback();
@@ -72,7 +76,7 @@ void RefactoringEngine::startLocalRenaming(const CppTools::CursorInEditor &data,
renameSymbolsCallback(symbolName, container, data.cursor().document()->revision());
});
- m_watcher.setFuture(cursorFuture);
+ m_watcher->setFuture(cursorFuture);
}
}
diff --git a/src/plugins/clangcodemodel/clangrefactoringengine.h b/src/plugins/clangcodemodel/clangrefactoringengine.h
index fee9a85cf5..79537f24df 100644
--- a/src/plugins/clangcodemodel/clangrefactoringengine.h
+++ b/src/plugins/clangcodemodel/clangrefactoringengine.h
@@ -57,7 +57,7 @@ public:
private:
using FutureCursorWatcher = QFutureWatcher<CppTools::CursorInfo>;
- FutureCursorWatcher m_watcher;
+ std::unique_ptr<FutureCursorWatcher> m_watcher;
};
} // namespace ClangRefactoring