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