From 92065bff0f7694f1c99e0c2575825e2cf6f3636f Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Tue, 10 Aug 2021 10:57:54 +0200 Subject: [PATCH] Locator: Guard settings saving against filters with empty ID When constructing the settings key, an empty ID would lead to writing (in this case removing) the whole Locator settings category, which overwrites all indidvidual Locator settings. Don't save settings for filters with empty ID at all. Introduced when introducing clangd support to ClangCodeModel plugin. Amends ecafdb7543927ffe8a9066ce24ed532a097fa21d Fixes: QTCREATORBUG-26101 Change-Id: I4ecb4f86fa8a0ef2bc2417206629c9e322addb12 Reviewed-by: Christian Kandeler --- src/plugins/coreplugin/locator/locator.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/coreplugin/locator/locator.cpp b/src/plugins/coreplugin/locator/locator.cpp index 8db747845ca..362c5034d12 100644 --- a/src/plugins/coreplugin/locator/locator.cpp +++ b/src/plugins/coreplugin/locator/locator.cpp @@ -318,7 +318,7 @@ void Locator::saveSettings() const s->remove(QString()); s->setValue("RefreshInterval", refreshInterval()); for (ILocatorFilter *filter : m_filters) { - if (!m_customFilters.contains(filter)) { + if (!m_customFilters.contains(filter) && filter->id().isValid()) { const QByteArray state = filter->saveState(); s->setValueWithDefault(filter->id().toString(), state); }