diff --git a/src/plugins/coreplugin/locator/locator.cpp b/src/plugins/coreplugin/locator/locator.cpp index cc1ac31fb70..ac75bac73eb 100644 --- a/src/plugins/coreplugin/locator/locator.cpp +++ b/src/plugins/coreplugin/locator/locator.cpp @@ -171,6 +171,7 @@ bool Locator::delayedInitialize() void Locator::aboutToShutdown() { + m_shuttingDown = true; m_refreshTimer.stop(); if (m_refreshTask.isRunning()) { m_refreshTask.cancel(); @@ -384,6 +385,9 @@ void Locator::setRefreshInterval(int interval) void Locator::refresh(QList filters) { + if (m_shuttingDown) + return; + if (m_refreshTask.isRunning()) { m_refreshTask.cancel(); // this is not ideal because some of the previous filters might have finished, but we diff --git a/src/plugins/coreplugin/locator/locator.h b/src/plugins/coreplugin/locator/locator.h index 26e577eb7fb..1f3c7ece6da 100644 --- a/src/plugins/coreplugin/locator/locator.h +++ b/src/plugins/coreplugin/locator/locator.h @@ -76,6 +76,7 @@ private: LocatorData *m_locatorData = nullptr; + bool m_shuttingDown = false; bool m_settingsInitialized = false; QList m_filters; QList m_customFilters;