rendered paste bodyIndex: tools/manager.py
===================================================================
RCS file: /cvs/gnome/gedit/plugins/externaltools/tools/manager.py,v
retrieving revision 1.2
diff -u -p -r1.2 manager.py
--- tools/manager.py 21 Jan 2006 16:40:09 -0000 1.2
+++ tools/manager.py 7 Feb 2006 22:32:49 -0000
@@ -100,7 +100,7 @@ class Manager:
for item in self.tools:
self.model.append([item.get('label'), item])
- self.model.connect('row-changed', self.on_tools_model_row_changed)
+ self.row_changed_id = self.model.connect('row-changed', self.on_tools_model_row_changed)
def __init_tools_view(self):
# Tools column
@@ -112,7 +112,7 @@ class Manager:
self.view.append_column(column)
renderer.connect('edited', self.on_view_label_cell_edited)
- self.view.get_selection().connect('changed', self.on_view_selection_changed, None)
+ self.selection_changed_id = self.view.get_selection().connect('changed', self.on_view_selection_changed, None)
def __init_combobox(self, name):
combo = self[name]
@@ -181,19 +181,26 @@ class Manager:
Manager.combobox_items['applicability'][0][0]))
self['title'].set_label(_('Edit tool <i>%s</i>:') % node.get('label'))
-
def on_new_tool_button_clicked(self, button):
self.save_current_tool()
+
+ # block handlers while inserting a new item
+ self.model.handler_block(self.row_changed_id)
+ self.view.get_selection().handler_block(self.selection_changed_id)
+
self.current_node = et.Element('tool');
self.current_node.set('label', _('New tool'))
self.tools.root.append(self.current_node)
piter = self.model.append([self.current_node.get('label'),
self.current_node])
- self.view.set_cursor(self.model.get_path(piter),
+ self.view.set_cursor(self.model.get_path(piter),
self.view.get_column(self.LABEL_COLUMN),
True)
self.fill_fields()
-
+
+ self.view.get_selection().handler_unblock(self.selection_changed_id)
+ self.model.handler_unblock(self.row_changed_id)
+
def on_remove_tool_button_clicked(self, button):
piter, node = self.get_selected_tool()
self.tools.root.remove(node)