Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/extensions
diff options
context:
space:
mode:
authorSayamindu Dasgupta <sayamindu@gmail.com>2009-08-16 22:06:57 (GMT)
committer Sayamindu Dasgupta <sayamindu@gmail.com>2009-08-16 22:06:57 (GMT)
commit3e1c714acbfc6f30a81685117eb008308a9e3fbd (patch)
treee9055d8ca8920dd0fb78a143c6caeb44bda7a477 /extensions
parentc7721cce946a26dd99d945cddee26431b8d3b66a (diff)
Add undo() support
Diffstat (limited to 'extensions')
-rw-r--r--extensions/cpsection/keyboard/view.py36
1 files changed, 22 insertions, 14 deletions
diff --git a/extensions/cpsection/keyboard/view.py b/extensions/cpsection/keyboard/view.py
index 2f3f1ed..1bb0feb 100644
--- a/extensions/cpsection/keyboard/view.py
+++ b/extensions/cpsection/keyboard/view.py
@@ -123,10 +123,12 @@ class Keyboard(SectionView):
self._kmodel = None
self._selected_kmodel = None
- self._klayout = []
- self._selected_klayout = []
- self._kgrpswitch_option = None
- self._selected_kgrpswitch_option = None
+
+ self._klayouts = []
+ self._selected_klayouts = []
+
+ self._group_switch_option = None
+ self._selected_group_switch_option = None
self.set_border_width(style.DEFAULT_SPACING * 2)
self.set_spacing(style.DEFAULT_SPACING)
@@ -199,11 +201,11 @@ class Keyboard(SectionView):
def __kmodel_timeout_cb(self, combobox):
it = combobox.get_active_iter()
model = combobox.get_model()
- kmodel = model.get(it, 0)[0]
- if kmodel == self._xkb.get_current_model():
+ self._selected_kmodel = model.get(it, 0)[0]
+ if self._selected_kmodel == self._xkb.get_current_model():
return
try:
- self._xkb.set_model(kmodel)
+ self._xkb.set_model(self._selected_kmodel)
except:
pass #TODO: Show error
@@ -232,13 +234,13 @@ class Keyboard(SectionView):
self._grp_option_combo.pack_start(cell)
self._grp_option_combo.add_attribute(cell, 'text', 1)
- current_grp_option = self._xkb.get_current_option_grp()
- if not current_grp_option:
+ self._group_switch_option = self._xkb.get_current_option_grp()
+ if not self._group_switch_option:
self._grp_option_combo.set_active(0)
else:
found = False
for row in self._grp_option_store:
- if current_grp_option in row[0]:
+ if self._group_switch_option in row[0]:
self._grp_option_combo.set_active_iter(row.iter)
found = True
break
@@ -260,11 +262,12 @@ class Keyboard(SectionView):
def __group_switch_timeout_cb(self, combobox):
it = combobox.get_active_iter()
model = combobox.get_model()
- group_switch = model.get(it, 0)[0]
- if group_switch == self._xkb.get_current_option_grp():
+ self._selected_group_switch_option = model.get(it, 0)[0]
+ if self._selected_group_switch_option == \
+ self._xkb.get_current_option_grp():
return
try:
- self._xkb.set_option_grp(group_switch)
+ self._xkb.set_option_grp(self._selected_group_switch_option)
except:
pass #TODO: Show error
@@ -281,7 +284,6 @@ class Keyboard(SectionView):
self._vbox.pack_start(label_klayout, expand=False)
self._klayouts = self._xkb.get_current_layouts()
- self._selected_klayouts = None
for i in range(0, self._xkb.get_max_layouts()):
add_remove_box = self.__create_add_remove_box()
self._layout_addremovebox_list.append(add_remove_box)
@@ -376,3 +378,9 @@ class Keyboard(SectionView):
return False
+
+ def undo(self):
+ self._xkb.set_model(self._kmodel)
+ self._xkb.set_layouts(self._klayouts)
+ self._xkb.set_option_grp(self._group_switch_option)
+