From e1aa70db0ec913aa3da240ba336e520faeeef916 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Wed, 22 Feb 2012 17:20:50 +0100 Subject: [PATCH] Prevent double sent of edited event Rely only on the focus-out-event of the editable otherwise the edited event can be sent twice and if the selected profile was removed it generates a IndexError. --- tryton/gui/window/dblogin.py | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/tryton/gui/window/dblogin.py b/tryton/gui/window/dblogin.py index 9d3d41f65e..6c992f3d7c 100644 --- a/tryton/gui/window/dblogin.py +++ b/tryton/gui/window/dblogin.py @@ -40,7 +40,6 @@ class DBListEditor(object): vbox_profiles = gtk.VBox(homogeneous=False, spacing=6) self.cell = gtk.CellRendererText() self.cell.set_property('editable', True) - self.cell.connect('edited', self.edit_profilename) self.cell.connect('editing-started', self.edit_started) self.profile_tree = gtk.TreeView() self.profile_tree.set_model(profile_store) @@ -231,16 +230,13 @@ class DBListEditor(object): self.display_dbwidget(None, None, self.current_database) - def check_edit_cancel(self, editable, event, renderer, path): - renderer.emit('edited', path, editable.get_text()) - return False - def edit_started(self, renderer, editable, path): if isinstance(editable, gtk.Entry): - editable.connect('focus-out-event', self.check_edit_cancel, + editable.connect('focus-out-event', self.edit_profilename, renderer, path) - def edit_profilename(self, renderer, path, newtext): + def edit_profilename(self, editable, event, renderer, path): + newtext = editable.get_text() model = self.profile_tree.get_model() oldname = model[path][0] if oldname == newtext == '':