From 167564e0f340536f081abfed968c788e2bbdecd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Mon, 25 Aug 2008 12:34:54 +0200 Subject: [PATCH] Add new signal record-modified to reset info message for issue278 --- tryton/gui/window/form.py | 4 ++++ tryton/gui/window/view_form/model/group.py | 6 ++++++ tryton/gui/window/view_form/model/record.py | 2 ++ tryton/gui/window/view_form/screen/screen.py | 4 ++++ 4 files changed, 16 insertions(+) diff --git a/tryton/gui/window/form.py b/tryton/gui/window/form.py index fbd3339594..c187311020 100644 --- a/tryton/gui/window/form.py +++ b/tryton/gui/window/form.py @@ -54,6 +54,7 @@ class Form(SignalEvent): limit=limit, readonly=bool(auto_refresh), form=self, search_value=search_value) self.screen.signal_connect(self, 'record-message', self._record_message) + self.screen.signal_connect(self, 'record-modified', self._record_modified) self.screen.signal_connect(self, 'attachment-count', self._attachment_count) self.screen.widget.show() @@ -428,6 +429,9 @@ class Form(SignalEvent): self.status.push(cid, msg) self.message_info('') + def _record_modified(self, screen, signal_data): + self.message_info('', color='white') + def _attachment_count(self, screen, signal_data): self.signal('attachment-count', signal_data) diff --git a/tryton/gui/window/view_form/model/group.py b/tryton/gui/window/view_form/model/group.py index a7ba9eb92b..1fc35dd5d8 100644 --- a/tryton/gui/window/view_form/model/group.py +++ b/tryton/gui/window/view_form/model/group.py @@ -161,6 +161,7 @@ class ModelRecordGroup(SignalEvent): self.models.append(newmod) newmods.append(newmod) newmod.signal_connect(self, 'record-changed', self._record_changed) + newmod.signal_connect(self, 'record-modified', self._record_modified) if id in self.model_removed: self.model_removed.remove(id) if id in self.model_deleted: @@ -225,6 +226,7 @@ class ModelRecordGroup(SignalEvent): if modified: model.modified = True model.signal_connect(self, 'record-changed', self._record_changed) + model.signal_connect(self, 'record-modified', self._record_modified) return model def model_move(self, model, position=0): @@ -246,6 +248,7 @@ class ModelRecordGroup(SignalEvent): newmod = ModelRecord(self.resource, None, self.window, group=self, parent=self.parent, new=True) newmod.signal_connect(self, 'record-changed', self._record_changed) + newmod.signal_connect(self, 'record-modified', self._record_modified) if default: ctx = {} ctx.update(context or {}) @@ -267,6 +270,9 @@ class ModelRecordGroup(SignalEvent): def _record_changed(self, model, signal_data): self.signal('model-changed', model) + def _record_modified(self, model, signal_data): + self.signal('record-modified', model) + def prev(self): if self.models and self.current_idx is not None: self.current_idx = (self.current_idx - 1) % len(self.models) diff --git a/tryton/gui/window/view_form/model/record.py b/tryton/gui/window/view_form/model/record.py index 78b630bf07..4d3d281b85 100644 --- a/tryton/gui/window/view_form/model/record.py +++ b/tryton/gui/window/view_form/model/record.py @@ -88,6 +88,8 @@ class ModelRecord(SignalEvent): def set_modified(self, value): self.__modified = value + if value: + self.signal('record-modified') modified = property(get_modified, set_modified) diff --git a/tryton/gui/window/view_form/screen/screen.py b/tryton/gui/window/view_form/screen/screen.py index 4e4f65f05e..e35b9a1c86 100644 --- a/tryton/gui/window/view_form/screen/screen.py +++ b/tryton/gui/window/view_form/screen/screen.py @@ -170,6 +170,7 @@ class Screen(SignalEvent): self.current_model = None self.models.signal_connect(self, 'record-cleared', self._record_cleared) self.models.signal_connect(self, 'record-changed', self._record_changed) + self.models.signal_connect(self, 'record-modified', self._record_modified) self.models.signal_connect(self, 'model-changed', self._model_changed) models.add_fields(self.fields, models) self.fields.update(models.fields) @@ -183,6 +184,9 @@ class Screen(SignalEvent): view.signal_record_changed(signal[0], model_group.models, signal[1], *args) + def _record_modified(self, model_group, signal, *args): + self.signal('record-modified') + def _model_changed(self, model_group, model): if self.parent: self.parent.signal('record-changed', self.parent)