changeset 5dcbb1b9548e in tryton:default
details: https://hg.tryton.org/tryton?cmd=changeset;node=5dcbb1b9548e
description:
Pass record and field instead of path to event callback
The path may no more be valid when the callback is triggered.
issue9490
review328571002
diffstat:
tryton/gui/window/view_form/view/list_gtk/widget.py | 20 ++++++++------------
1 files changed, 8 insertions(+), 12 deletions(-)
diffs (53 lines):
diff -r 3ed87c35e120 -r 5dcbb1b9548e
tryton/gui/window/view_form/view/list_gtk/widget.py
--- a/tryton/gui/window/view_form/view/list_gtk/widget.py Wed Nov 04
12:52:51 2020 +0100
+++ b/tryton/gui/window/view_form/view/list_gtk/widget.py Wed Nov 11
20:31:17 2020 +0100
@@ -887,23 +887,21 @@
search=access['read'],
create=self.attrs.get('create', True) and access['create'])
completion.connect('match-selected', self._completion_match_selected,
- path, model)
+ record, field, model)
completion.connect('action-activated',
- self._completion_action_activated, path)
+ self._completion_action_activated, record, field)
entry.set_completion(completion)
- entry.connect('key-press-event', self._key_press, path)
- entry.connect('changed', self._update_completion, path)
+ entry.connect('key-press-event', self._key_press, record, field)
+ entry.connect('changed', self._update_completion, record, field)
- def _key_press(self, entry, event, path):
- record, field = self._get_record_field_from_path(path)
+ def _key_press(self, entry, event, record, field):
if (self.has_target(field.get(record))
and event.keyval in [Gdk.KEY_Delete, Gdk.KEY_BackSpace]):
entry.set_text('')
return False
def _completion_match_selected(
- self, completion, model, iter_, path, model_name):
- record, field = self._get_record_field_from_path(path)
+ self, completion, model, iter_, record, field, model_name):
rec_name, record_id = model.get(iter_, 0, 1)
field.set_client(
record, self.value_from_id(model_name, record_id, rec_name))
@@ -914,8 +912,7 @@
completion_model.search_text = rec_name
return True
- def _update_completion(self, entry, path):
- record, field = self._get_record_field_from_path(path)
+ def _update_completion(self, entry, record, field):
value = field.get(record)
if self.has_target(value):
id_ = self.id_from_value(value)
@@ -924,8 +921,7 @@
model = self.get_model(record, field)
update_completion(entry, record, field, model)
- def _completion_action_activated(self, completion, index, path):
- record, field = self._get_record_field_from_path(path)
+ def _completion_action_activated(self, completion, index, record, field):
entry = completion.get_entry()
entry.handler_block(entry.editing_done_id)