From a64ca6d071fd8b5d8d2f89707376da48803814af Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Wed, 20 Jul 2022 12:27:23 +0200 Subject: [PATCH] CppFindReferences: Avoid using sender() Change-Id: I8db77d9c4fecbb89875128555050a4dd5a248a42 Reviewed-by: Christian Kandeler --- src/plugins/cppeditor/cppfindreferences.cpp | 36 ++++++++++----------- src/plugins/cppeditor/cppfindreferences.h | 6 ++-- 2 files changed, 22 insertions(+), 20 deletions(-) diff --git a/src/plugins/cppeditor/cppfindreferences.cpp b/src/plugins/cppeditor/cppfindreferences.cpp index 90bfae8b29a..62d0ed8ca05 100644 --- a/src/plugins/cppeditor/cppfindreferences.cpp +++ b/src/plugins/cppeditor/cppfindreferences.cpp @@ -60,6 +60,8 @@ using namespace Core; using namespace ProjectExplorer; using namespace Utils; +using namespace std::placeholders; + namespace CppEditor { namespace { static bool isAllLowerCase(const QString &text) { return text.toLower() == text; } } @@ -467,13 +469,10 @@ void CppFindReferences::findUsages(CPlusPlus::Symbol *symbol, search->setTextToReplace(replacement); if (codeModelSettings()->categorizeFindReferences()) search->setFilter(new CppSearchResultFilter); - auto renameFilesCheckBox = new QCheckBox(); - renameFilesCheckBox->setVisible(false); - search->setAdditionalReplaceWidget(renameFilesCheckBox); - connect(search, &SearchResult::replaceButtonClicked, - this, &CppFindReferences::onReplaceButtonClicked); + setupSearch(search); search->setSearchAgainSupported(true); - connect(search, &SearchResult::searchAgainRequested, this, &CppFindReferences::searchAgain); + connect(search, &SearchResult::searchAgainRequested, this, + std::bind(&CppFindReferences::searchAgain, this, search)); CppFindReferencesParameters parameters; parameters.symbolId = fullIdForSymbol(symbol); parameters.symbolFileName = QByteArray(symbol->fileName()); @@ -525,7 +524,17 @@ void CppFindReferences::findAll_helper(SearchResult *search, CPlusPlus::Symbol * connect(progress, &FutureProgress::clicked, search, &SearchResult::popup); } -void CppFindReferences::onReplaceButtonClicked(const QString &text, +void CppFindReferences::setupSearch(Core::SearchResult *search) +{ + auto renameFilesCheckBox = new QCheckBox(); + renameFilesCheckBox->setVisible(false); + search->setAdditionalReplaceWidget(renameFilesCheckBox); + connect(search, &SearchResult::replaceButtonClicked, this, + std::bind(&CppFindReferences::onReplaceButtonClicked, this, search, _1, _2, _3)); +} + +void CppFindReferences::onReplaceButtonClicked(Core::SearchResult *search, + const QString &text, const QList &items, bool preserveCase) { @@ -536,9 +545,6 @@ void CppFindReferences::onReplaceButtonClicked(const QString &text, SearchResultWindow::instance()->hide(); } - auto search = qobject_cast(sender()); - QTC_ASSERT(search, return); - CppFindReferencesParameters parameters = search->userData().value(); if (parameters.filesToRename.isEmpty()) return; @@ -550,9 +556,8 @@ void CppFindReferences::onReplaceButtonClicked(const QString &text, renameFilesForSymbol(parameters.prettySymbolName, text, parameters.filesToRename); } -void CppFindReferences::searchAgain() +void CppFindReferences::searchAgain(SearchResult *search) { - auto search = qobject_cast(sender()); CppFindReferencesParameters parameters = search->userData().value(); parameters.filesToRename.clear(); CPlusPlus::Snapshot snapshot = CppModelManager::instance()->snapshot(); @@ -820,12 +825,7 @@ void CppFindReferences::findMacroUses(const CPlusPlus::Macro ¯o, const QStri QLatin1String("CppEditor")); search->setTextToReplace(replacement); - auto renameFilesCheckBox = new QCheckBox(); - renameFilesCheckBox->setVisible(false); - search->setAdditionalReplaceWidget(renameFilesCheckBox); - connect(search, &SearchResult::replaceButtonClicked, - this, &CppFindReferences::onReplaceButtonClicked); - + setupSearch(search); SearchResultWindow::instance()->popup(IOutputPane::ModeSwitch | IOutputPane::WithFocus); connect(search, &SearchResult::activated, diff --git a/src/plugins/cppeditor/cppfindreferences.h b/src/plugins/cppeditor/cppfindreferences.h index 341fac4e722..9d226678859 100644 --- a/src/plugins/cppeditor/cppfindreferences.h +++ b/src/plugins/cppeditor/cppfindreferences.h @@ -97,8 +97,10 @@ public: void renameMacroUses(const CPlusPlus::Macro ¯o, const QString &replacement = QString()); private: - void onReplaceButtonClicked(const QString &text, const QList &items, bool preserveCase); - void searchAgain(); + void setupSearch(Core::SearchResult *search); + void onReplaceButtonClicked(Core::SearchResult *search, const QString &text, + const QList &items, bool preserveCase); + void searchAgain(Core::SearchResult *search); void findUsages(CPlusPlus::Symbol *symbol, const CPlusPlus::LookupContext &context, const QString &replacement, bool replace);