From ec9ebc48136814bb2a36c102141ec819845260be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Tue, 8 Nov 2016 18:45:25 +0100 Subject: [PATCH] Fallback to set_property when set_orientation does not exist CellRendererProgress does not have set_orientation on GTK 2.0 And add same GTK 3.0 compatibility of ProgressBar fix to CellRendererProgress issue6016 review25811002 --- tryton/client.py | 8 ++++++++ tryton/gui/window/view_form/view/list_gtk/widget.py | 5 ++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/tryton/client.py b/tryton/client.py index 1bec368717..f57d4d13c1 100644 --- a/tryton/client.py +++ b/tryton/client.py @@ -63,6 +63,14 @@ if os.environ.get('GTK_VERSION', '2').startswith('3'): self.set_inverted(inverted) Gtk.ProgressBar.set_orientation = set_orientation + orig_set_orientation = Gtk.CellRendererProgress.set_orientation + + def set_orientation(self, orientation): + orientation, inverted = orientation + orig_set_orientation(self, orientation) + self.set_property('inverted', inverted) + Gtk.CellRendererProgress.set_orientation = set_orientation + orig_popup = Gtk.Menu.popup def popup(self, parent_menu_shell, parent_menu_item, func, button, diff --git a/tryton/gui/window/view_form/view/list_gtk/widget.py b/tryton/gui/window/view_form/view/list_gtk/widget.py index dc9bfb3063..4a2957b396 100644 --- a/tryton/gui/window/view_form/view/list_gtk/widget.py +++ b/tryton/gui/window/view_form/view/list_gtk/widget.py @@ -848,7 +848,10 @@ class ProgressBar(object): self.renderer = gtk.CellRendererProgress() orientation = self.orientations.get(self.attrs.get('orientation', 'left_to_right'), gtk.PROGRESS_LEFT_TO_RIGHT) - self.renderer.set_orientation(orientation) + if hasattr(self.renderer, 'set_orientation'): + self.renderer.set_orientation(orientation) + else: + self.renderer.set_property('orientation', orientation) self.renderer.set_property('yalign', 0) @realized