changeset d99d8c5b29e3 in tryton:6.0
details: https://hg.tryton.org/tryton?cmd=changeset&node=d99d8c5b29e3
description:
Use *-changed events of generic date and time widgets
This ensures to detect all changes of the widgets without relying on
implementation details.
issue11659
review421571003
(grafted from 30f71de3e567db683cd7d99610761a43a0b0ce28)
diffstat:
tryton/gui/window/view_form/view/form_gtk/calendar_.py | 21 +++++++----------
1 files changed, 9 insertions(+), 12 deletions(-)
diffs (52 lines):
diff -r 4ee4c87cb309 -r d99d8c5b29e3
tryton/gui/window/view_form/view/form_gtk/calendar_.py
--- a/tryton/gui/window/view_form/view/form_gtk/calendar_.py Tue Sep 06
23:27:56 2022 +0200
+++ b/tryton/gui/window/view_form/view/form_gtk/calendar_.py Thu Sep 01
22:07:13 2022 +0200
@@ -24,8 +24,7 @@
self.real_entry.connect('key_press_event', self.sig_key_press)
self.real_entry.connect('activate', self.sig_activate)
self.real_entry.connect('changed', lambda _: self.send_modified())
- self.real_entry.connect('focus-out-event',
- lambda x, y: self._focus_out())
+ self.entry.connect('date-changed', self.changed)
self.widget.pack_start(self.entry, expand=False, fill=False, padding=0)
@property
@@ -52,6 +51,13 @@
return field_value != self.get_value()
return False
+ def changed(self, widget):
+ def focus_out():
+ if widget.props.window:
+ self._focus_out()
+ # Must be deferred because it triggers a display of the form
+ GLib.idle_add(focus_out)
+
def sig_key_press(self, widget, event):
self.send_modified()
@@ -108,15 +114,6 @@
format_ = '%X'
self.entry.props.format = format_
- def changed(self, combobox):
- def focus_out():
- if combobox.props.window:
- self._focus_out()
- # Only when changed from pop list
- if not combobox.get_child().has_focus():
- # Must be deferred because it triggers a display of the form
- GLib.idle_add(focus_out)
-
class DateTime(Date):
def __init__(self, view, attrs):
@@ -132,7 +129,7 @@
child.connect('key_press_event', self.sig_key_press)
child.connect('activate', self.sig_activate)
child.connect('changed', lambda _: self.send_modified())
- child.connect('focus-out-event', lambda x, y: self._focus_out())
+ self.entry.connect('datetime-changed', self.changed)
self.widget.pack_start(self.entry, expand=False, fill=False, padding=0)
@classmethod