Ravi Gadhia (OpenERP) has proposed merging 
lp:~openerp-dev/openobject-client/trunk-bug-844064-rga into 
lp:openobject-client.

Requested reviews:
  Naresh(OpenERP) (nch-openerp)
Related bugs:
  Bug #844064 in OpenERP GTK Client: "attrs not working within a group with 
nested notebooks"
  https://bugs.launchpad.net/openobject-client/+bug/844064

For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-client/trunk-bug-844064-rga/+merge/78041
-- 
https://code.launchpad.net/~openerp-dev/openobject-client/trunk-bug-844064-rga/+merge/78041
Your team OpenERP R&D Team is subscribed to branch 
lp:~openerp-dev/openobject-client/trunk-bug-844064-rga.
=== modified file 'bin/widget/view/form.py'
--- bin/widget/view/form.py	2011-07-05 10:58:42 +0000
+++ bin/widget/view/form.py	2011-10-04 05:17:30 +0000
@@ -369,8 +369,8 @@
                 if k=='readonly':
                     obj.set_sensitive(True)
 
-    def set_notebook(self,model,nb,focus_widget=None):
-        for i in range(0,nb.get_n_pages()):
+    def set_notebook(self, model, nb, focus_widget=None):
+        for i in range(0, nb.get_n_pages()):
             page = nb.get_nth_page(i)
             if focus_widget:
                 if focus_widget.widget.widget.is_ancestor(page):
@@ -378,8 +378,14 @@
                 focus_widget.widget.grab_focus()
             children_notebooks = page.get_children()
             for child in children_notebooks:
-                if isinstance(child,gtk.Notebook):
-                    self.set_notebook(model,child)
+                if isinstance(child, gtk.Frame):
+                    for x in child.get_children():
+                        if isinstance(x, gtk.Table):
+                            for y in x.get_children():
+                                if isinstance(y, gtk.Notebook):
+                                    self.set_notebook(model, y)
+                if isinstance(child, gtk.Notebook):
+                    self.set_notebook(model, child)
             # attrs eval only when call from display not at time of set_cursor call
             if nb.get_tab_label(page).attrs.get('attrs', False) and not focus_widget:
                 self.attrs_set(model, page, nb.get_tab_label(page), nb, i)
@@ -387,19 +393,20 @@
     def display(self):
         model = self.screen.current_model
         for x in self.widget.get_children():
-            if (type(x)==gtk.Table):
+            if isinstance(x, gtk.Table):
                 for y in x.get_children():
-                    if type(y)==gtk.Notebook:
-                        self.set_notebook(model,y)
-            elif type(x)==gtk.Notebook:
-                self.set_notebook(model,x)
+                    if isinstance(y, gtk.Notebook):
+                        self.set_notebook(model, y)
+            elif isinstance(x, gtk.Notebook):
+                self.set_notebook(model, x)
         if model and ('state' in model.mgroup.fields):
             state = model['state'].get(model)
         else:
             state = 'draft'
         button_focus = field_focus = None
         for widget in self.state_aware_widgets:
-            widget.state_set(state)
+            if not isinstance(widget.widget, gtk.Frame) or state:
+                widget.state_set(state)
             widget.attrs_set(model)
             if widget.widget.attrs.get('focus_button'):
                 button_focus =  widget.widget

_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help   : https://help.launchpad.net/ListHelp

Reply via email to