Clean up YamlConfig._handle_migrations

This commit is contained in:
Florian Bruhin 2018-02-10 11:44:18 +01:00
parent c7133a662c
commit 4ac4833c93

View File

@ -169,23 +169,30 @@ class YamlConfig(QObject):
self._validate() self._validate()
def _handle_migrations(self): def _handle_migrations(self):
"""Handle unknown/renamed keys.""" """Migrate older configs to the newest format."""
# Simple renamed/deleted options
for name in list(self._values): for name in list(self._values):
if name in configdata.MIGRATIONS.renamed: if name in configdata.MIGRATIONS.renamed:
new_name = configdata.MIGRATIONS.renamed[name] new_name = configdata.MIGRATIONS.renamed[name]
log.config.debug("Renaming {} to {}".format(name, new_name)) log.config.debug("Renaming {} to {}".format(name, new_name))
self._values[new_name] = self._values[name] self._values[new_name] = self._values[name]
self.unset(name) del self._values[name]
self._mark_changed()
elif name in configdata.MIGRATIONS.deleted: elif name in configdata.MIGRATIONS.deleted:
log.config.debug("Removing {}".format(name)) log.config.debug("Removing {}".format(name))
self.unset(name) del self._values[name]
persist = 'tabs.persist_mode_on_change' self._mark_changed()
if persist in self._values:
if self._values[persist]: # tabs.persist_mode_on_change got merged into tabs.mode_on_change
self._values['tabs.mode_on_change'] = 'persist' old = 'tabs.persist_mode_on_change'
new = 'tabs.mode_on_change'
if old in self._values:
if self._values[old]:
self._values[new] = 'persist'
else: else:
self._values['tabs.mode_on_change'] = 'normal' self._values[new] = 'normal'
self.unset(persist) del self._values[old]
self._mark_changed()
def _validate(self): def _validate(self):
"""Make sure all settings exist.""" """Make sure all settings exist."""