SymbolsFindFilter: Avoid using sender()

Change-Id: Ibd0a63802c44823f70890666dd8e0073eb4caf59
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
Jarek Kobus
2022-07-20 13:08:15 +02:00
parent a64ca6d071
commit 60c185b60a
2 changed files with 18 additions and 30 deletions

View File

@@ -83,19 +83,15 @@ bool SymbolsFindFilter::isEnabled() const
return m_enabled; return m_enabled;
} }
void SymbolsFindFilter::cancel() void SymbolsFindFilter::cancel(SearchResult *search)
{ {
auto search = qobject_cast<SearchResult *>(sender());
QTC_ASSERT(search, return);
QFutureWatcher<SearchResultItem> *watcher = m_watchers.key(search); QFutureWatcher<SearchResultItem> *watcher = m_watchers.key(search);
QTC_ASSERT(watcher, return); QTC_ASSERT(watcher, return);
watcher->cancel(); watcher->cancel();
} }
void SymbolsFindFilter::setPaused(bool paused) void SymbolsFindFilter::setPaused(SearchResult *search, bool paused)
{ {
auto search = qobject_cast<SearchResult *>(sender());
QTC_ASSERT(search, return);
QFutureWatcher<SearchResultItem> *watcher = m_watchers.key(search); QFutureWatcher<SearchResultItem> *watcher = m_watchers.key(search);
QTC_ASSERT(watcher, return); QTC_ASSERT(watcher, return);
if (!paused || watcher->isRunning()) // guard against pausing when the search is finished 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); search->setSearchAgainSupported(true);
connect(search, &SearchResult::activated, connect(search, &SearchResult::activated,
this, &SymbolsFindFilter::openEditor); this, &SymbolsFindFilter::openEditor);
connect(search, &SearchResult::canceled, this, &SymbolsFindFilter::cancel); connect(search, &SearchResult::canceled, this, [this, search] { cancel(search); });
connect(search, &SearchResult::paused, this, &SymbolsFindFilter::setPaused); connect(search, &SearchResult::paused,
connect(search, &SearchResult::searchAgainRequested, this, &SymbolsFindFilter::searchAgain); 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); connect(this, &IFindFilter::enabledChanged, search, &SearchResult::setSearchAgainEnabled);
window->popup(IOutputPane::ModeSwitch | IOutputPane::WithFocus); window->popup(IOutputPane::ModeSwitch | IOutputPane::WithFocus);
@@ -135,10 +135,9 @@ void SymbolsFindFilter::startSearch(SearchResult *search)
auto watcher = new QFutureWatcher<SearchResultItem>; auto watcher = new QFutureWatcher<SearchResultItem>;
m_watchers.insert(watcher, search); m_watchers.insert(watcher, search);
connect(watcher, &QFutureWatcherBase::finished, connect(watcher, &QFutureWatcherBase::finished, this, [this, watcher] { finish(watcher); });
this, &SymbolsFindFilter::finish); connect(watcher, &QFutureWatcherBase::resultsReadyAt, this, [this, watcher]
connect(watcher, &QFutureWatcherBase::resultsReadyAt, (int begin, int end) { addResults(watcher, begin, end); });
this, &SymbolsFindFilter::addResults);
SymbolSearcher *symbolSearcher = m_manager->indexingSupport()->createSymbolSearcher(parameters, projectFileNames); SymbolSearcher *symbolSearcher = m_manager->indexingSupport()->createSymbolSearcher(parameters, projectFileNames);
connect(watcher, &QFutureWatcherBase::finished, connect(watcher, &QFutureWatcherBase::finished,
symbolSearcher, &QObject::deleteLater); symbolSearcher, &QObject::deleteLater);
@@ -149,9 +148,8 @@ void SymbolsFindFilter::startSearch(SearchResult *search)
connect(progress, &FutureProgress::clicked, search, &SearchResult::popup); connect(progress, &FutureProgress::clicked, search, &SearchResult::popup);
} }
void SymbolsFindFilter::addResults(int begin, int end) void SymbolsFindFilter::addResults(QFutureWatcher<SearchResultItem> *watcher, int begin, int end)
{ {
auto watcher = static_cast<QFutureWatcher<SearchResultItem> *>(sender());
SearchResult *search = m_watchers.value(watcher); SearchResult *search = m_watchers.value(watcher);
if (!search) { if (!search) {
// search was removed from search history while the search is running // 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); search->addResults(items, SearchResult::AddSorted);
} }
void SymbolsFindFilter::finish() void SymbolsFindFilter::finish(QFutureWatcher<SearchResultItem> *watcher)
{ {
auto watcher = static_cast<QFutureWatcher<SearchResultItem> *>(sender());
SearchResult *search = m_watchers.value(watcher); SearchResult *search = m_watchers.value(watcher);
if (search) if (search)
search->finishSearch(watcher->isCanceled()); search->finishSearch(watcher->isCanceled());
@@ -228,14 +225,6 @@ void SymbolsFindFilter::onAllTasksFinished(Id type)
} }
} }
void SymbolsFindFilter::searchAgain()
{
auto search = qobject_cast<SearchResult *>(sender());
QTC_ASSERT(search, return);
search->restart();
startSearch(search);
}
QString SymbolsFindFilter::label() const QString SymbolsFindFilter::label() const
{ {
return tr("C++ Symbols:"); return tr("C++ Symbols:");

View File

@@ -76,13 +76,12 @@ signals:
private: private:
void openEditor(const Core::SearchResultItem &item); void openEditor(const Core::SearchResultItem &item);
void addResults(int begin, int end); void addResults(QFutureWatcher<Core::SearchResultItem> *watcher, int begin, int end);
void finish(); void finish(QFutureWatcher<Core::SearchResultItem> *watcher);
void cancel(); void cancel(Core::SearchResult *search);
void setPaused(bool paused); void setPaused(Core::SearchResult *search, bool paused);
void onTaskStarted(Utils::Id type); void onTaskStarted(Utils::Id type);
void onAllTasksFinished(Utils::Id type); void onAllTasksFinished(Utils::Id type);
void searchAgain();
QString label() const; QString label() const;
QString toolTip(Core::FindFlags findFlags) const; QString toolTip(Core::FindFlags findFlags) const;