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;