changeset 6cb3b508c1c8 in tryton:default
details: https://hg.tryton.org/tryton?cmd=changeset&node=6cb3b508c1c8
description:
        Disable next/previous buttons depending on the record position

        issue11302
        review388061002
diffstat:

 tryton/gui/window/form.py |  19 +++++++++++--------
 1 files changed, 11 insertions(+), 8 deletions(-)

diffs (36 lines):

diff -r 91b30931cd49 -r 6cb3b508c1c8 tryton/gui/window/form.py
--- a/tryton/gui/window/form.py Wed Mar 09 00:19:52 2022 +0100
+++ b/tryton/gui/window/form.py Sat Mar 26 13:00:03 2022 +0100
@@ -591,6 +591,12 @@
         popup(menu, widget)
 
     def record_message(self, position, size, max_size, record_id):
+        def set_sensitive(button_id, sensitive):
+            if button_id in self.buttons:
+                self.buttons[button_id].props.sensitive = sensitive
+            if button_id in self.menu_buttons:
+                self.menu_buttons[button_id].props.sensitive = sensitive
+
         name = str(position) if position else '_'
         selected = len(self.screen.selected_records)
         if selected > 1:
@@ -608,14 +614,11 @@
                     for b in self.screen.get_buttons())
             elif button_id == 'save':
                 can_be_sensitive &= not self.screen.readonly
-            button.props.sensitive = bool(position) and can_be_sensitive
-        button_switch = self.buttons['switch']
-        button_switch.props.sensitive = self.screen.number_of_views > 1
-
-        menu_delete = self.menu_buttons['remove']
-        menu_delete.props.sensitive = self.screen.deletable
-        menu_save = self.menu_buttons['save']
-        menu_save.props.sensitive = not self.screen.readonly
+            set_sensitive(button_id, bool(position) and can_be_sensitive)
+        set_sensitive('switch', self.screen.number_of_views > 1)
+        set_sensitive('remove', self.screen.deletable)
+        set_sensitive('previous', position > (self.screen.offset + 1))
+        set_sensitive('next', position < size)
 
         if size < max_size:
             msg = "%s@%s/%s" % (

Reply via email to