From ebd1701a40617c785db38ce716d1b42ad3418fb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Mon, 23 May 2011 15:18:40 +0200 Subject: [PATCH] Fix wizard in window and missing icon Wizard in window must manage the new toolbar Every windows must have an icon attribute --- tryton/action/main.py | 2 +- tryton/gui/window/window.py | 4 +++- tryton/gui/window/wizard.py | 10 +++++++++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/tryton/action/main.py b/tryton/action/main.py index 84b9262cfc..0ca095c67e 100644 --- a/tryton/action/main.py +++ b/tryton/action/main.py @@ -154,7 +154,7 @@ class Action(object): direct_print=action.get('direct_print', False), email_print=action.get('email_print', False), email=action.get('email'), name=action.get('name', False), - context=context) + context=context, icon=(action.get('icon.rec_name') or '')) else: Wizard.execute(action['wiz_name'], data, window, direct_print=action.get('direct_print', False), diff --git a/tryton/gui/window/window.py b/tryton/gui/window/window.py index f6a24abf2c..f95863b576 100644 --- a/tryton/gui/window/window.py +++ b/tryton/gui/window/window.py @@ -29,10 +29,12 @@ class Window(object): @staticmethod def create_wizard(action, datas, parent, state='init', direct_print=False, - email_print=False, email=None, name=False, context=None): + email_print=False, email=None, name=False, context=None, + icon=None): from tryton.gui import Main from wizard import Wizard win = Wizard(parent, name=name) + win.icon = icon Main.get_main().win_add(win) win.run(action, datas, state=state, direct_print=direct_print, email_print=email_print, email=email, context=context) diff --git a/tryton/gui/window/wizard.py b/tryton/gui/window/wizard.py index 84e0f8d274..f65949fec6 100644 --- a/tryton/gui/window/wizard.py +++ b/tryton/gui/window/wizard.py @@ -16,6 +16,8 @@ class Wizard(SignalEvent): super(Wizard, self).__init__() self.window = window self.widget = gtk.VBox(spacing=3) + self.toolbar_box = gtk.HBox() + self.widget.pack_start(self.toolbar_box, False, True) self.widget.show() self.name = name or '' self.model = '' @@ -117,6 +119,9 @@ class Wizard(SignalEvent): self.end() def destroy(self): + if self.toolbar_box.get_children(): + toolbar = self.toolbar_box.get_children()[0] + self.toolbar_box.remove(toolbar) if hasattr(self, 'screen'): self.screen.signal_unconnect(self) self.screen.destroy() @@ -125,7 +130,8 @@ class Wizard(SignalEvent): def end(self): try: - rpc.execute('wizard', self.action, 'delete', self.wiz_id) + rpc.execute('wizard', self.action, 'delete', self.wiz_id, + rpc.CONTEXT) #XXX to remove when company displayed in status bar rpc.context_reload() except Exception: @@ -217,6 +223,8 @@ class Wizard(SignalEvent): self.widget.pack_start(eb, expand=False, fill=True, padding=3) + self.widget.pack_start(self.toolbar_box, False, True) + viewport = gtk.Viewport() viewport.set_shadow_type(gtk.SHADOW_NONE) viewport.add(self.screen.widget)