From ebe555951f043ac230149436fb15627120da945e Mon Sep 17 00:00:00 2001 From: Shane Synan Date: Fri, 22 Jun 2018 00:18:09 -0500 Subject: [PATCH] client: Fix settings upgrade missing some steps Remove cache check in Settings::localKeyExists(). This fixes settings version upgrade wrongly skipping some steps due to earlier migration steps causing default values (not stored in .conf) to be loaded into settings cache. Most notably, creating/writing the QtUiStyle settings Qt StyleSheet. The symptoms are only visible when migrating multiple steps at once, hence not catching this earlier. Bug originally introduced in d2ac8f78a0e050d2efa397c434b249d6b3391576 --- src/common/settings.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/common/settings.cpp b/src/common/settings.cpp index 2d79ffe3..6273f7c7 100644 --- a/src/common/settings.cpp +++ b/src/common/settings.cpp @@ -207,9 +207,8 @@ const QVariant &Settings::localValue(const QString &key, const QVariant &def) bool Settings::localKeyExists(const QString &key) { QString normKey = normalizedKey(group, key); - if (isCached(normKey)) - return true; - + // Do NOT check the cache as default values get cached, too. Otherwise loading a setting once + // will mark it as existing in settings, even when it only exists in cache (and not on disk). create_qsettings; return s.contains(normKey); } -- 2.20.1