diff options
author | Sayamindu Dasgupta <sayamindu@gmail.com> | 2009-08-16 21:38:07 (GMT) |
---|---|---|
committer | Sayamindu Dasgupta <sayamindu@gmail.com> | 2009-08-16 21:38:07 (GMT) |
commit | c7721cce946a26dd99d945cddee26431b8d3b66a (patch) | |
tree | 2eb1c6b08b0e7c747d24f1b428c55daa3a6b744f /extensions/cpsection/keyboard/model.py | |
parent | 2d848947cbcb97b45de16e49153aff70cc58da2c (diff) |
Implement *_set() support for model, layout and layout switching option
Diffstat (limited to 'extensions/cpsection/keyboard/model.py')
-rw-r--r-- | extensions/cpsection/keyboard/model.py | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/extensions/cpsection/keyboard/model.py b/extensions/cpsection/keyboard/model.py index 9828963..9bc90eb 100644 --- a/extensions/cpsection/keyboard/model.py +++ b/extensions/cpsection/keyboard/model.py @@ -116,3 +116,29 @@ class XKB(gobject.GObject): def get_max_layouts(self): return self._engine.get_max_num_groups() + + def set_model(self, model): + #XXX: Which one goes first ? + self._gconf_client.set_string(MODEL_KEY, model) + self._configrec.set_model(model) + self._configrec.activate(self._engine) + + def set_option_grp(self, option_grp): + #XXX: Take a backup of existing settings first (there may be other hand set values) + options = [option_grp] + self._gconf_client.set_list(OPTIONS_KEY, gconf.VALUE_STRING, options) + self._configrec.set_options(options) + self._configrec.activate(self._engine) + + def set_layouts(self, layouts): + self._gconf_client.set_list(LAYOUTS_KEY, gconf.VALUE_STRING, layouts) + layouts_list = [] + variants_list = [] + for layout in layouts: + layouts_list.append(layout.split('(')[0]) + variants_list.append(layout.split('(')[1][:-1]) + + self._configrec.set_layouts(layouts_list) + self._configrec.set_variants(variants_list) + self._configrec.activate(self._engine) + |