diff options
author | Eike Ziller <eike.ziller@qt.io> | 2018-04-26 12:28:00 +0000 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2018-04-26 12:28:00 +0000 |
commit | c1bfc9d0a45c8e1c891cc20d251da5e3dfd6a10d (patch) | |
tree | adfd42b81dc02b12d91fd45f3cbe5c6347b16bcc /src/plugins/clangcodemodel | |
parent | e0c4da30a62630d39b8b04ee58da1c18b5eeb598 (diff) | |
parent | 62050437c3fc088d6bafc2fdce8bb6a7a3ae9394 (diff) | |
download | qt-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.cpp | 12 | ||||
-rw-r--r-- | src/plugins/clangcodemodel/clangrefactoringengine.h | 2 |
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 |