summaryrefslogtreecommitdiff
path: root/src/plugins/clangcodemodel/clangrefactoringengine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/clangcodemodel/clangrefactoringengine.cpp')
-rw-r--r--src/plugins/clangcodemodel/clangrefactoringengine.cpp12
1 files changed, 8 insertions, 4 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);
}
}