diff --git a/keymapper/gtk/window.py b/keymapper/gtk/window.py index cb573d5e..45e63c33 100755 --- a/keymapper/gtk/window.py +++ b/keymapper/gtk/window.py @@ -277,8 +277,8 @@ class Window: try: # new_preset = create_preset(self.selected_device) - # TODO create a preset file, tell custom_mapping to do so - # or something + # TODO create a preset file, tell custom_mapping to clear itself + # and dump itself into a new file new_preset = 'new_preset' self.get('preset_selection').append(new_preset, new_preset) self.get('preset_selection').set_active_id(new_preset) @@ -339,7 +339,7 @@ class Window: key_list.remove(single_key_mapping) def save_config(self): - """Write changes to disk""" + """Write changes to disk.""" if self.selected_device is None or self.selected_preset is None: return @@ -349,7 +349,7 @@ class Window: self.selected_preset ) - # TODO tell the mapping to dump itself as JSON somewhere + custom_mapping.save(self.selected_device, self.selected_preset) custom_mapping.changed = False self.unhighlight_all_rows() diff --git a/keymapper/mapping.py b/keymapper/mapping.py index abbfb8d5..1bbd6914 100644 --- a/keymapper/mapping.py +++ b/keymapper/mapping.py @@ -22,6 +22,8 @@ """Contains and manages mappings.""" +import json + from keymapper.logger import logger @@ -96,6 +98,14 @@ class Mapping: self._mapping = {} self.changed = True + def load(self, device, preset): + """Load a dumped JSON from home to overwrite the mappings.""" + # TODO + + def save(self, device, preset): + """Dump as JSON into home.""" + # TODO + def get_keycode(self, character): """Get the keycode for that character.""" # TODO prepare this with .lower() instead to make it faster @@ -118,12 +128,6 @@ class Mapping: """ return self._mapping.get(keycode) - def has(self, keycode): - """Check if this keycode is going to be a line in the symbols file. - TODO no symbols files anymore ^ - """ - return self._mapping.get(keycode) is not None - # one mapping object for the whole application that holds all # customizations