CppFindReferences: Avoid using sender()

Change-Id: I8db77d9c4fecbb89875128555050a4dd5a248a42
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
Jarek Kobus
2022-07-20 12:27:23 +02:00
parent afe0b5a42d
commit a64ca6d071
2 changed files with 22 additions and 20 deletions

View File

@@ -60,6 +60,8 @@ using namespace Core;
using namespace ProjectExplorer; using namespace ProjectExplorer;
using namespace Utils; using namespace Utils;
using namespace std::placeholders;
namespace CppEditor { namespace CppEditor {
namespace { static bool isAllLowerCase(const QString &text) { return text.toLower() == text; } } namespace { static bool isAllLowerCase(const QString &text) { return text.toLower() == text; } }
@@ -467,13 +469,10 @@ void CppFindReferences::findUsages(CPlusPlus::Symbol *symbol,
search->setTextToReplace(replacement); search->setTextToReplace(replacement);
if (codeModelSettings()->categorizeFindReferences()) if (codeModelSettings()->categorizeFindReferences())
search->setFilter(new CppSearchResultFilter); search->setFilter(new CppSearchResultFilter);
auto renameFilesCheckBox = new QCheckBox(); setupSearch(search);
renameFilesCheckBox->setVisible(false);
search->setAdditionalReplaceWidget(renameFilesCheckBox);
connect(search, &SearchResult::replaceButtonClicked,
this, &CppFindReferences::onReplaceButtonClicked);
search->setSearchAgainSupported(true); search->setSearchAgainSupported(true);
connect(search, &SearchResult::searchAgainRequested, this, &CppFindReferences::searchAgain); connect(search, &SearchResult::searchAgainRequested, this,
std::bind(&CppFindReferences::searchAgain, this, search));
CppFindReferencesParameters parameters; CppFindReferencesParameters parameters;
parameters.symbolId = fullIdForSymbol(symbol); parameters.symbolId = fullIdForSymbol(symbol);
parameters.symbolFileName = QByteArray(symbol->fileName()); parameters.symbolFileName = QByteArray(symbol->fileName());
@@ -525,7 +524,17 @@ void CppFindReferences::findAll_helper(SearchResult *search, CPlusPlus::Symbol *
connect(progress, &FutureProgress::clicked, search, &SearchResult::popup); 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<SearchResultItem> &items, const QList<SearchResultItem> &items,
bool preserveCase) bool preserveCase)
{ {
@@ -536,9 +545,6 @@ void CppFindReferences::onReplaceButtonClicked(const QString &text,
SearchResultWindow::instance()->hide(); SearchResultWindow::instance()->hide();
} }
auto search = qobject_cast<SearchResult *>(sender());
QTC_ASSERT(search, return);
CppFindReferencesParameters parameters = search->userData().value<CppFindReferencesParameters>(); CppFindReferencesParameters parameters = search->userData().value<CppFindReferencesParameters>();
if (parameters.filesToRename.isEmpty()) if (parameters.filesToRename.isEmpty())
return; return;
@@ -550,9 +556,8 @@ void CppFindReferences::onReplaceButtonClicked(const QString &text,
renameFilesForSymbol(parameters.prettySymbolName, text, parameters.filesToRename); renameFilesForSymbol(parameters.prettySymbolName, text, parameters.filesToRename);
} }
void CppFindReferences::searchAgain() void CppFindReferences::searchAgain(SearchResult *search)
{ {
auto search = qobject_cast<SearchResult *>(sender());
CppFindReferencesParameters parameters = search->userData().value<CppFindReferencesParameters>(); CppFindReferencesParameters parameters = search->userData().value<CppFindReferencesParameters>();
parameters.filesToRename.clear(); parameters.filesToRename.clear();
CPlusPlus::Snapshot snapshot = CppModelManager::instance()->snapshot(); CPlusPlus::Snapshot snapshot = CppModelManager::instance()->snapshot();
@@ -820,12 +825,7 @@ void CppFindReferences::findMacroUses(const CPlusPlus::Macro &macro, const QStri
QLatin1String("CppEditor")); QLatin1String("CppEditor"));
search->setTextToReplace(replacement); search->setTextToReplace(replacement);
auto renameFilesCheckBox = new QCheckBox(); setupSearch(search);
renameFilesCheckBox->setVisible(false);
search->setAdditionalReplaceWidget(renameFilesCheckBox);
connect(search, &SearchResult::replaceButtonClicked,
this, &CppFindReferences::onReplaceButtonClicked);
SearchResultWindow::instance()->popup(IOutputPane::ModeSwitch | IOutputPane::WithFocus); SearchResultWindow::instance()->popup(IOutputPane::ModeSwitch | IOutputPane::WithFocus);
connect(search, &SearchResult::activated, connect(search, &SearchResult::activated,

View File

@@ -97,8 +97,10 @@ public:
void renameMacroUses(const CPlusPlus::Macro &macro, const QString &replacement = QString()); void renameMacroUses(const CPlusPlus::Macro &macro, const QString &replacement = QString());
private: private:
void onReplaceButtonClicked(const QString &text, const QList<Core::SearchResultItem> &items, bool preserveCase); void setupSearch(Core::SearchResult *search);
void searchAgain(); void onReplaceButtonClicked(Core::SearchResult *search, const QString &text,
const QList<Core::SearchResultItem> &items, bool preserveCase);
void searchAgain(Core::SearchResult *search);
void findUsages(CPlusPlus::Symbol *symbol, const CPlusPlus::LookupContext &context, void findUsages(CPlusPlus::Symbol *symbol, const CPlusPlus::LookupContext &context,
const QString &replacement, bool replace); const QString &replacement, bool replace);