Reviewers: ,


Please review this at http://codereview.tryton.org/486002/

Affected files:
  M CHANGELOG
  M tryton/gui/window/view_form/view/form_gtk/parser.py


Index: CHANGELOG
===================================================================

--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,4 @@
+* Manage readonly state on group
 * Remove "Please wait" box
 * Refactorize date widgets
 * Manage tuple on Reference

Index: tryton/gui/window/view_form/view/form_gtk/parser.py
===================================================================

--- a/tryton/gui/window/view_form/view/form_gtk/parser.py
+++ b/tryton/gui/window/view_form/view/form_gtk/parser.py
@@ -68,11 +68,12 @@

 class Frame(gtk.Frame):

-    def __init__(self, label=None, attrs=None):
+    def __init__(self, label=None, attrs=None, widgets=None):
         if not label:  # label must be None to have no label widget
             label = None
         super(Frame, self).__init__(label=label)
         self.attrs = attrs or {}
+        self.widgets = widgets or {}
         if not label:
             self.set_shadow_type(gtk.SHADOW_NONE)
         self.set_border_width(0)
@@ -87,6 +88,10 @@
             self.hide()
         else:
             self.show()
+        if state_changes.get('readonly', self.attrs.get('readonly')):
+            for widgets in self.widgets.itervalues():
+                for widget in widgets:
+                    widget._readonly_set(True)


 class ScrolledWindow(gtk.ScrolledWindow):
@@ -469,9 +474,9 @@
                 if not cursor_widget:
                     cursor_widget = cursor_widget2
                 notebook_list.extend(notebook_list2)
-                for widget_name, widgets in widgets.iteritems():
+                for widget_name, lwidgets in widgets.iteritems():
                     dict_widget.setdefault(widget_name, [])
-                    dict_widget[widget_name].extend(widgets)
+                    dict_widget[widget_name].extend(lwidgets)
                 button_list += buttons
                 text = ''
                 if 'name' in attrs and attrs['name'] in fields:
@@ -486,7 +491,7 @@
                 if attrs.get('string'):
                     text = attrs['string']

-                frame = Frame(text, attrs)
+                frame = Frame(text, attrs, widgets=widgets)
                 frame.add(widget)
                 button_list.append(frame)
                 container.wid_add(frame,



--
[email protected] mailing list

Reply via email to