From 95e7bdfdb79ca52cbe5a0c8b7a571ea32a34c9de Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Thu, 11 Feb 2021 10:22:25 +0100 Subject: [PATCH] Locator: Cancel running search when closing When closing e.g. a separate window with a locator search running, we don't need the search to continue. Save resources by cancelling it. Change-Id: I889b9cd163a9cc79045fb0eda9797856c489bd39 Reviewed-by: Jarek Kobus --- src/plugins/coreplugin/locator/locatorwidget.cpp | 7 +++++++ src/plugins/coreplugin/locator/locatorwidget.h | 1 + 2 files changed, 8 insertions(+) diff --git a/src/plugins/coreplugin/locator/locatorwidget.cpp b/src/plugins/coreplugin/locator/locatorwidget.cpp index 2bf34b710b6..9c93c81f702 100644 --- a/src/plugins/coreplugin/locator/locatorwidget.cpp +++ b/src/plugins/coreplugin/locator/locatorwidget.cpp @@ -623,6 +623,13 @@ LocatorWidget::LocatorWidget(Locator *locator) : updateFilterList(); } +LocatorWidget::~LocatorWidget() +{ + // no need to completely finish a running search, cancel it + if (m_entriesWatcher->future().isRunning()) + m_entriesWatcher->future().cancel(); +} + void LocatorWidget::updatePlaceholderText(Command *command) { QTC_ASSERT(command, return); diff --git a/src/plugins/coreplugin/locator/locatorwidget.h b/src/plugins/coreplugin/locator/locatorwidget.h index 96aca416603..9371b5aac98 100644 --- a/src/plugins/coreplugin/locator/locatorwidget.h +++ b/src/plugins/coreplugin/locator/locatorwidget.h @@ -57,6 +57,7 @@ class LocatorWidget public: explicit LocatorWidget(Locator *locator); + ~LocatorWidget() override; void showText(const QString &text, int selectionStart = -1, int selectionLength = 0); QString currentText() const;