Reviewers: ,
Please review this at http://codereview.tryton.org/237002/ Affected files: M tryton/gui/window/view_form/view/list_gtk/parser.py Index: tryton/gui/window/view_form/view/list_gtk/parser.py =================================================================== --- a/tryton/gui/window/view_form/view/list_gtk/parser.py +++ b/tryton/gui/window/view_form/view/list_gtk/parser.py @@ -4,6 +4,7 @@ import os import gobject import tempfile +from functools import wraps from editabletree import EditableTreeView from tryton.gui.window.view_form.view.interface import ParserInterface from tryton.gui.window.win_search import WinSearch @@ -73,6 +74,16 @@ store.group.append(record) +def realized(func): + "Decorator for treeview realized" + @wraps(func) + def wrapper(self, *args, **kwargs): + if not self.treeview.get_realized(): + return + return func(self, *args, **kwargs) + return wrapper + + class ParserTree(ParserInterface): def __init__(self, parent=None, attrs=None, screen=None, @@ -146,6 +157,8 @@ icon = node_attrs['icon'] def setter(column, cell, store, iter): + if not self.treeview.get_realized(): + return record = store.get_value(iter, 0) value = record[icon].get_client(record) or '' common.ICONFACTORY.register_icon(value) @@ -286,6 +299,7 @@ self.renderer.connect('editing-started', self.editing_started) self.treeview = treeview + @realized def setter(self, column, cell, store, iter): record = store.get_value(iter, 0) text = self.get_textual_value(record) @@ -435,6 +449,7 @@ self.renderer = CellRendererFloat() self.renderer.connect('editing-started', self.editing_started) + @realized def setter(self, column, cell, store, iter): super(Float, self).setter(column, cell, store, iter) record = store.get_value(iter, 0) @@ -484,6 +499,7 @@ if callback: callback() + @realized def setter(self, column, cell, store, iter): record = store.get_value(iter, 0) size = record[self.field_name].get_size(record) @@ -659,6 +675,7 @@ class O2M(Char): + @realized def setter(self, column, cell, store, iter): super(O2M, self).setter(column, cell, store, iter) cell.set_property('xalign', 0.5) @@ -690,6 +707,7 @@ class M2M(Char): + @realized def setter(self, column, cell, store, iter): super(M2M, self).setter(column, cell, store, iter) cell.set_property('xalign', 0.5) @@ -919,6 +937,7 @@ self.renderer.set_property('orientation', orientation) self.treeview = treeview + @realized def setter(self, column, cell, store, iter): record = store.get_value(iter, 0) value = float(self.get_textual_value(record) or 0.0) @@ -952,6 +971,7 @@ self.renderer.connect('clicked', self.button_clicked) + @realized def setter(self, column, cell, store, iter): record = store.get_value(iter, 0) states = record.expr_eval(self.attrs.get('states', {}), -- [email protected] mailing list
