Reviewers: ,


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

Affected files:
  M tryton/gui/window/view_form/view/form_gtk/many2many.py
  M tryton/gui/window/view_form/view/form_gtk/one2many.py


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

--- a/tryton/gui/window/view_form/view/form_gtk/many2many.py
+++ b/tryton/gui/window/view_form/view/form_gtk/many2many.py
@@ -81,10 +81,16 @@

         tooltips.enable()

-        frame = gtk.Frame()
-        frame.add(hbox)
-        frame.set_shadow_type(gtk.SHADOW_OUT)
-        self.widget.pack_start(frame, expand=False, fill=True)
+        self.frame = gtk.Frame()
+        self.frame.add(hbox)
+        self.frame.set_shadow_type(gtk.SHADOW_OUT)
+        if attrs.get('expand_toolbar'):
+            self.expander = gtk.Expander()
+            self.expander.connect('notify::expanded', self.expand_bar)
+            self.widget.pack_start(self.expander, expand=False, fill=True)
+        else:
+            self.expander = None
+            self.widget.pack_start(self.frame, expand=False, fill=True)

         self.screen = Screen(attrs['relation'],
             view_ids=attrs.get('view_ids', '').split(','),
@@ -229,6 +235,8 @@
         new_group = field.get_client(record)
         if id(self.screen.group) != id(new_group):
             self.screen.group = new_group
+            if not new_group and self.expander:
+                self.expander.set_expanded(True)
         self.screen.display()
         return True

@@ -277,3 +285,12 @@

             self.focus_out = False
             WinForm(screen, callback, new=True, save_current=True)
+
+    def expand_bar(self, expander, expanded):
+        expanded = expander.get_expanded()
+        if expanded and self.expander:
+            self.widget.remove(self.expander)
+            self.widget.pack_start(self.frame, expand=False, fill=True)
+            self.widget.reorder_child(self.frame, 0)
+            self.frame.show_all()
+            self.expander = None

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

--- a/tryton/gui/window/view_form/view/form_gtk/one2many.py
+++ b/tryton/gui/window/view_form/view/form_gtk/one2many.py
@@ -169,10 +169,16 @@

         tooltips.enable()

-        frame = gtk.Frame()
-        frame.add(hbox)
-        frame.set_shadow_type(gtk.SHADOW_OUT)
-        self.widget.pack_start(frame, expand=False, fill=True)
+        self.frame = gtk.Frame()
+        self.frame.add(hbox)
+        self.frame.set_shadow_type(gtk.SHADOW_OUT)
+        if attrs.get('expand_toolbar'):
+            self.expander = gtk.Expander()
+            self.expander.connect('notify::expanded', self.expand_bar)
+            self.widget.pack_start(self.expander, expand=False, fill=True)
+        else:
+            self.expander = None
+            self.widget.pack_start(self.frame, expand=False, fill=True)

         self.screen = Screen(attrs['relation'],
             mode=attrs.get('mode', 'tree,form').split(','),
@@ -454,6 +460,8 @@
                 self.screen.domain = domain
             if not self.screen.group.readonly and readonly:
                 self.screen.group.readonly = readonly
+            if not new_group and self.expander:
+                self.expander.set_expanded(True)
         self.screen.display()
         return True

@@ -496,3 +504,12 @@
             self.wid_text.grab_focus()
         elif index == 1:
             self._sig_new()
+
+    def expand_bar(self, expander, expanded):
+        expanded = expander.get_expanded()
+        if expanded and self.expander:
+            self.widget.remove(self.expander)
+            self.widget.pack_start(self.frame, expand=False, fill=True)
+            self.widget.reorder_child(self.frame, 0)
+            self.frame.show_all()
+            self.expander = None



--
--
tryton-dev@googlegroups.com mailing list



Reply via email to