From 60c185b60a6440a80e5b456da8ea12ffd133e362 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Wed, 20 Jul 2022 13:08:15 +0200 Subject: [PATCH] SymbolsFindFilter: Avoid using sender() Change-Id: Ibd0a63802c44823f70890666dd8e0073eb4caf59 Reviewed-by: Christian Kandeler Reviewed-by: --- src/plugins/cppeditor/symbolsfindfilter.cpp | 39 ++++++++------------- src/plugins/cppeditor/symbolsfindfilter.h | 9 +++-- 2 files changed, 18 insertions(+), 30 deletions(-) diff --git a/src/plugins/cppeditor/symbolsfindfilter.cpp b/src/plugins/cppeditor/symbolsfindfilter.cpp index 10f11022397..403e23ca627 100644 --- a/src/plugins/cppeditor/symbolsfindfilter.cpp +++ b/src/plugins/cppeditor/symbolsfindfilter.cpp @@ -83,19 +83,15 @@ bool SymbolsFindFilter::isEnabled() const return m_enabled; } -void SymbolsFindFilter::cancel() +void SymbolsFindFilter::cancel(SearchResult *search) { - auto search = qobject_cast(sender()); - QTC_ASSERT(search, return); QFutureWatcher *watcher = m_watchers.key(search); QTC_ASSERT(watcher, return); watcher->cancel(); } -void SymbolsFindFilter::setPaused(bool paused) +void SymbolsFindFilter::setPaused(SearchResult *search, bool paused) { - auto search = qobject_cast(sender()); - QTC_ASSERT(search, return); QFutureWatcher *watcher = m_watchers.key(search); QTC_ASSERT(watcher, return); if (!paused || watcher->isRunning()) // guard against pausing when the search is finished @@ -109,9 +105,13 @@ void SymbolsFindFilter::findAll(const QString &txt, FindFlags findFlags) search->setSearchAgainSupported(true); connect(search, &SearchResult::activated, this, &SymbolsFindFilter::openEditor); - connect(search, &SearchResult::canceled, this, &SymbolsFindFilter::cancel); - connect(search, &SearchResult::paused, this, &SymbolsFindFilter::setPaused); - connect(search, &SearchResult::searchAgainRequested, this, &SymbolsFindFilter::searchAgain); + connect(search, &SearchResult::canceled, this, [this, search] { cancel(search); }); + connect(search, &SearchResult::paused, + this, [this, search](bool paused) { setPaused(search, paused); }); + connect(search, &SearchResult::searchAgainRequested, this, [this, search] { + search->restart(); + startSearch(search); + }); connect(this, &IFindFilter::enabledChanged, search, &SearchResult::setSearchAgainEnabled); window->popup(IOutputPane::ModeSwitch | IOutputPane::WithFocus); @@ -135,10 +135,9 @@ void SymbolsFindFilter::startSearch(SearchResult *search) auto watcher = new QFutureWatcher; m_watchers.insert(watcher, search); - connect(watcher, &QFutureWatcherBase::finished, - this, &SymbolsFindFilter::finish); - connect(watcher, &QFutureWatcherBase::resultsReadyAt, - this, &SymbolsFindFilter::addResults); + connect(watcher, &QFutureWatcherBase::finished, this, [this, watcher] { finish(watcher); }); + connect(watcher, &QFutureWatcherBase::resultsReadyAt, this, [this, watcher] + (int begin, int end) { addResults(watcher, begin, end); }); SymbolSearcher *symbolSearcher = m_manager->indexingSupport()->createSymbolSearcher(parameters, projectFileNames); connect(watcher, &QFutureWatcherBase::finished, symbolSearcher, &QObject::deleteLater); @@ -149,9 +148,8 @@ void SymbolsFindFilter::startSearch(SearchResult *search) connect(progress, &FutureProgress::clicked, search, &SearchResult::popup); } -void SymbolsFindFilter::addResults(int begin, int end) +void SymbolsFindFilter::addResults(QFutureWatcher *watcher, int begin, int end) { - auto watcher = static_cast *>(sender()); SearchResult *search = m_watchers.value(watcher); if (!search) { // search was removed from search history while the search is running @@ -164,9 +162,8 @@ void SymbolsFindFilter::addResults(int begin, int end) search->addResults(items, SearchResult::AddSorted); } -void SymbolsFindFilter::finish() +void SymbolsFindFilter::finish(QFutureWatcher *watcher) { - auto watcher = static_cast *>(sender()); SearchResult *search = m_watchers.value(watcher); if (search) search->finishSearch(watcher->isCanceled()); @@ -228,14 +225,6 @@ void SymbolsFindFilter::onAllTasksFinished(Id type) } } -void SymbolsFindFilter::searchAgain() -{ - auto search = qobject_cast(sender()); - QTC_ASSERT(search, return); - search->restart(); - startSearch(search); -} - QString SymbolsFindFilter::label() const { return tr("C++ Symbols:"); diff --git a/src/plugins/cppeditor/symbolsfindfilter.h b/src/plugins/cppeditor/symbolsfindfilter.h index d253618c638..f33508e4e0f 100644 --- a/src/plugins/cppeditor/symbolsfindfilter.h +++ b/src/plugins/cppeditor/symbolsfindfilter.h @@ -76,13 +76,12 @@ signals: private: void openEditor(const Core::SearchResultItem &item); - void addResults(int begin, int end); - void finish(); - void cancel(); - void setPaused(bool paused); + void addResults(QFutureWatcher *watcher, int begin, int end); + void finish(QFutureWatcher *watcher); + void cancel(Core::SearchResult *search); + void setPaused(Core::SearchResult *search, bool paused); void onTaskStarted(Utils::Id type); void onAllTasksFinished(Utils::Id type); - void searchAgain(); QString label() const; QString toolTip(Core::FindFlags findFlags) const;