Merge commit '4004d5adf09e6d22dae5d781a02c5fc2bbd26724' into Carpetsmoker/unwritable-keyconf
This commit is contained in:
commit
35181ff84e
@ -142,9 +142,14 @@ class KeyConfigParser(QObject):
|
|||||||
def save(self):
|
def save(self):
|
||||||
"""Save the key config file."""
|
"""Save the key config file."""
|
||||||
log.destroy.debug("Saving key config to {}".format(self._configfile))
|
log.destroy.debug("Saving key config to {}".format(self._configfile))
|
||||||
with qtutils.savefile_open(self._configfile, encoding='utf-8') as f:
|
|
||||||
data = str(self)
|
try:
|
||||||
f.write(data)
|
with qtutils.savefile_open(self._configfile,
|
||||||
|
encoding='utf-8') as f:
|
||||||
|
data = str(self)
|
||||||
|
f.write(data)
|
||||||
|
except OSError as e:
|
||||||
|
message.error("Could not save key config: {}".format(e))
|
||||||
|
|
||||||
@cmdutils.register(instance='key-config', maxsplit=1, no_cmd_split=True,
|
@cmdutils.register(instance='key-config', maxsplit=1, no_cmd_split=True,
|
||||||
no_replace_variables=True)
|
no_replace_variables=True)
|
||||||
@ -252,6 +257,7 @@ class KeyConfigParser(QObject):
|
|||||||
"""
|
"""
|
||||||
# {'sectname': {'keychain1': 'command', 'keychain2': 'command'}, ...}
|
# {'sectname': {'keychain1': 'command', 'keychain2': 'command'}, ...}
|
||||||
bindings_to_add = collections.OrderedDict()
|
bindings_to_add = collections.OrderedDict()
|
||||||
|
mark_dirty = False
|
||||||
|
|
||||||
for sectname, sect in configdata.KEY_DATA.items():
|
for sectname, sect in configdata.KEY_DATA.items():
|
||||||
sectname = self._normalize_sectname(sectname)
|
sectname = self._normalize_sectname(sectname)
|
||||||
@ -261,6 +267,7 @@ class KeyConfigParser(QObject):
|
|||||||
if not only_new or self._is_new(sectname, command, e):
|
if not only_new or self._is_new(sectname, command, e):
|
||||||
assert e not in bindings_to_add[sectname]
|
assert e not in bindings_to_add[sectname]
|
||||||
bindings_to_add[sectname][e] = command
|
bindings_to_add[sectname][e] = command
|
||||||
|
mark_dirty = True
|
||||||
|
|
||||||
for sectname, sect in bindings_to_add.items():
|
for sectname, sect in bindings_to_add.items():
|
||||||
if not sect:
|
if not sect:
|
||||||
@ -271,7 +278,7 @@ class KeyConfigParser(QObject):
|
|||||||
self._add_binding(sectname, keychain, command)
|
self._add_binding(sectname, keychain, command)
|
||||||
self.changed.emit(sectname)
|
self.changed.emit(sectname)
|
||||||
|
|
||||||
if bindings_to_add:
|
if mark_dirty:
|
||||||
self._mark_config_dirty()
|
self._mark_config_dirty()
|
||||||
|
|
||||||
def _is_new(self, sectname, command, keychain):
|
def _is_new(self, sectname, command, keychain):
|
||||||
|
Loading…
Reference in New Issue
Block a user