From dbd16b39f0f7dc67b77047d6854ff1c49d489ac4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Sun, 24 Jul 2011 18:54:57 +0200 Subject: [PATCH] Make activate_save use Screen.modified It is better to use the Object state to set the state of the button --- tryton/gui/window/form.py | 14 +++++++------- tryton/gui/window/view_form/screen/screen.py | 6 +++--- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/tryton/gui/window/form.py b/tryton/gui/window/form.py index 1bfda784ff..fabdb454ce 100644 --- a/tryton/gui/window/form.py +++ b/tryton/gui/window/form.py @@ -348,6 +348,7 @@ class Form(SignalEvent, TabContent): return self.screen.new() self.message_info('') + self.activate_save() def sig_copy(self, widget=None): if not self.modified_save(): @@ -378,14 +379,12 @@ class Form(SignalEvent, TabContent): return self.screen.display_prev() self.message_info('') - self.activate_save(False) def sig_next(self, widget=None): if not self.modified_save(): return self.screen.display_next() self.message_info('') - self.activate_save(False) def sig_reload(self, test_modified=True): if not hasattr(self, 'screen'): @@ -411,7 +410,7 @@ class Form(SignalEvent, TabContent): self.screen.display(set_cursor=True) break self.message_info('') - self.activate_save(False) + self.activate_save() return True def sig_action(self, widget): @@ -483,13 +482,14 @@ class Form(SignalEvent, TabContent): msg += _(' of ') + str(signal_data[2]) self.status_label.set_text(msg) self.message_info('') + self.activate_save() def _record_modified(self, screen, signal_data): self.message_info('', color='white') - self.activate_save(True) + self.activate_save() def _record_saved(self, screen, signal_data): - self.activate_save(False) + self.activate_save() def modified_save(self, reload=True): if self.screen.modified(): @@ -550,8 +550,8 @@ class Form(SignalEvent, TabContent): self.screen.reload(written=True) return value - def activate_save(self, activate): - self.buttons['save'].props.sensitive = activate + def activate_save(self): + self.buttons['save'].props.sensitive = self.screen.modified() def sig_win_close(self, widget): Main.get_main().sig_win_close(widget) diff --git a/tryton/gui/window/view_form/screen/screen.py b/tryton/gui/window/view_form/screen/screen.py index 08e75a920e..d34196676b 100644 --- a/tryton/gui/window/view_form/screen/screen.py +++ b/tryton/gui/window/view_form/screen/screen.py @@ -493,13 +493,13 @@ class Screen(SignalEvent): get_modifiedonly=get_modifiedonly) def modified(self): - self.current_view.set_value() res = False if self.current_view.view_type != 'tree': - res = self.current_record and self.current_record.modified + if self.current_record: + res = self.current_record.modified or self.current_record.id < 0 else: for record in self.group: - if record.modified: + if record.modified or record.id < 0: res = True return res