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
bool Settings::localKeyExists(const QString &key)
{
QString normKey = normalizedKey(group, key);
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);
}
create_qsettings;
return s.contains(normKey);
}