From cfaab49c57b83b43008daa2ab94dfe066c7bf4d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Sat, 3 Oct 2015 11:52:34 +0200 Subject: [PATCH] Manage readonly widget attribute in TreeView.next_column issue4772 review21421002 --- tryton/gui/window/view_form/view/list.py | 2 +- .../window/view_form/view/list_gtk/editabletree.py | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/tryton/gui/window/view_form/view/list.py b/tryton/gui/window/view_form/view/list.py index c16a40e57b..db87deaadc 100644 --- a/tryton/gui/window/view_form/view/list.py +++ b/tryton/gui/window/view_form/view/list.py @@ -284,7 +284,7 @@ class ViewTree(View): if self.attributes.get('editable'): self.treeview = EditableTreeView(self.attributes['editable'], self) else: - self.treeview = TreeView() + self.treeview = TreeView(self) self.parse(xml) diff --git a/tryton/gui/window/view_form/view/list_gtk/editabletree.py b/tryton/gui/window/view_form/view/list_gtk/editabletree.py index 460b6c08a6..5f1d9df121 100644 --- a/tryton/gui/window/view_form/view/list_gtk/editabletree.py +++ b/tryton/gui/window/view_form/view/list_gtk/editabletree.py @@ -14,6 +14,10 @@ _ = gettext.gettext class TreeView(gtk.TreeView): display_counter = 0 + def __init__(self, view): + super(TreeView, self).__init__() + self.view = view + def next_column(self, path, column=None, editable=True, _sign=1): columns = self.get_columns() if column is None: @@ -27,11 +31,13 @@ class TreeView(gtk.TreeView): len(columns) + current_idx): if not column.name: continue + widget = self.view.get_column_widget(column) field = record[column.name] field.state_set(record, states=('readonly', 'invisible')) invisible = field.get_state_attrs(record).get('invisible', False) if editable: - readonly = field.get_state_attrs(record).get('readonly', False) + readonly = widget.attrs.get('readonly', + field.get_state_attrs(record).get('readonly', False)) else: readonly = False if not (invisible or readonly): @@ -50,9 +56,8 @@ class EditableTreeView(TreeView): gtk.keysyms.ISO_Left_Tab, gtk.keysyms.KP_Enter) def __init__(self, position, view): - super(EditableTreeView, self).__init__() + super(EditableTreeView, self).__init__(view) self.editable = position - self.view = view def on_quit_cell(self, current_record, column, value, callback=None): field = current_record[column.name]