From 584939d3bc217b9463703e9a903caadf80c50d00 Mon Sep 17 00:00:00 2001 From: Wade Brainerd Date: Sun, 29 Nov 2009 23:27:57 +0000 Subject: Fall back to old style toolbars when the new classes are not available. --- diff --git a/webactivity.py b/webactivity.py index 4be551e..95e6993 100644 --- a/webactivity.py +++ b/webactivity.py @@ -45,9 +45,16 @@ from sugar.graphics.tray import HTray from sugar import profile from sugar.graphics.alert import Alert from sugar.graphics.icon import Icon -from sugar.graphics.toolbarbox import ToolbarButton from sugar import mime +# Attempt to import the new toolbar classes. If the import fails, +# fall back to the old toolbar style. +try: + from sugar.graphics.toolbarbox import ToolbarButton + NEW_TOOLBARS = True +except ImportError: + NEW_TOOLBARS = False + PROFILE_VERSION = 1 _profile_version = 0 @@ -170,6 +177,10 @@ SERVICE = "org.laptop.WebActivity" IFACE = SERVICE PATH = "/org/laptop/WebActivity" +if not NEW_TOOLBARS: + _TOOLBAR_EDIT = 1 + _TOOLBAR_BROWSE = 2 + _logger = logging.getLogger('web-activity') class WebActivity(activity.Activity): @@ -197,21 +208,43 @@ class WebActivity(activity.Activity): self._tray.show() self._edit_toolbar = EditToolbar(self) - self._edit_toolbar_button = ToolbarButton( - page=self._edit_toolbar, - icon_name='toolbar-edit') - self._primary_toolbar.toolbar.insert( - self._edit_toolbar_button, 1) - self._view_toolbar = ViewToolbar(self) - view_toolbar_button = ToolbarButton( - page=self._view_toolbar, - icon_name='toolbar-view') - self._primary_toolbar.toolbar.insert( - view_toolbar_button, 2) - self._primary_toolbar.show_all() - self.set_toolbar_box(self._primary_toolbar) + if NEW_TOOLBARS: + _logger.debug('Using new toolbars') + + self._edit_toolbar_button = ToolbarButton( + page=self._edit_toolbar, + icon_name='toolbar-edit') + self._primary_toolbar.toolbar.insert( + self._edit_toolbar_button, 1) + + view_toolbar_button = ToolbarButton( + page=self._view_toolbar, + icon_name='toolbar-view') + self._primary_toolbar.toolbar.insert( + view_toolbar_button, 2) + + self._primary_toolbar.show_all() + self.set_toolbar_box(self._primary_toolbar) + else: + _logger.debug('Using old toolbars') + + toolbox = activity.ActivityToolbox(self) + + toolbox.add_toolbar(_('Edit'), self._edit_toolbar) + self._edit_toolbar.show() + + toolbox.add_toolbar(_('Browse'), self._primary_toolbar) + self._primary_toolbar.show() + + toolbox.add_toolbar(_('View'), self._view_toolbar) + self._view_toolbar.show() + + self.set_toolbox(toolbox) + toolbox.show() + + self.toolbox.set_current_toolbar(_TOOLBAR_BROWSE) self.set_canvas(self._tabbed_view) self._tabbed_view.show() @@ -427,11 +460,16 @@ class WebActivity(activity.Activity): return True elif gtk.gdk.keyval_name(event.keyval) == "f": _logger.debug('keyboard: Find') - self._edit_toolbar_button.set_expanded(True) + if NEW_TOOLBARS: + self._edit_toolbar_button.set_expanded(True) + else: + self.toolbox.set_current_toolbar(_TOOLBAR_EDIT) self._edit_toolbar.search_entry.grab_focus() return True elif gtk.gdk.keyval_name(event.keyval) == "l": _logger.debug('keyboard: Focus url entry') + if not NEW_TOOLBARS: + self.toolbox.set_current_toolbar(_TOOLBAR_BROWSE) self._primary_toolbar.entry.grab_focus() return True elif gtk.gdk.keyval_name(event.keyval) == "minus": diff --git a/webtoolbar.py b/webtoolbar.py index 854345c..cbadffe 100644 --- a/webtoolbar.py +++ b/webtoolbar.py @@ -27,10 +27,16 @@ from xpcom import components from sugar.graphics.toolbutton import ToolButton from sugar.graphics.menuitem import MenuItem from sugar._sugarext import AddressEntry -from sugar.graphics.toolbarbox import ToolbarBox -from sugar.activity.widgets import ActivityToolbarButton -from sugar.activity.widgets import StopButton -from sugar.activity import activity + +try: + from sugar.graphics.toolbarbox import ToolbarBox as ToolbarBase + from sugar.activity.widgets import ActivityToolbarButton + from sugar.activity.widgets import StopButton + from sugar.activity import activity + NEW_TOOLBARS = True +except ImportError: + from gtk import Toolbar as ToolbarBase + NEW_TOOLBARS = False import filepicker import places @@ -216,7 +222,7 @@ class WebEntry(AddressEntry): else: self._search_popup() -class PrimaryToolbar(ToolbarBox): +class PrimaryToolbar(ToolbarBase): __gtype_name__ = 'PrimaryToolbar' __gsignals__ = { @@ -226,7 +232,7 @@ class PrimaryToolbar(ToolbarBox): } def __init__(self, tabbed_view, act): - ToolbarBox.__init__(self) + ToolbarBase.__init__(self) self._activity = act @@ -234,12 +240,16 @@ class PrimaryToolbar(ToolbarBox): self._loading = False - activity_button = ActivityToolbarButton(self._activity) - self.toolbar.insert(activity_button, 0) + if NEW_TOOLBARS: + toolbar = self.toolbar + activity_button = ActivityToolbarButton(self._activity) + toolbar.insert(activity_button, 0) + else: + toolbar = self self._stop_and_reload = ToolButton('media-playback-stop') self._stop_and_reload.connect('clicked', self._stop_and_reload_cb) - self.toolbar.insert(self._stop_and_reload, -1) + toolbar.insert(self._stop_and_reload, -1) self._stop_and_reload.show() self.entry = WebEntry() @@ -250,31 +260,32 @@ class PrimaryToolbar(ToolbarBox): entry_item.add(self.entry) self.entry.show() - self.toolbar.insert(entry_item, -1) + toolbar.insert(entry_item, -1) entry_item.show() self._back = ToolButton('go-previous-paired') self._back.set_tooltip(_('Back')) self._back.props.sensitive = False self._back.connect('clicked', self._go_back_cb) - self.toolbar.insert(self._back, -1) + toolbar.insert(self._back, -1) self._back.show() self._forward = ToolButton('go-next-paired') self._forward.set_tooltip(_('Forward')) self._forward.props.sensitive = False self._forward.connect('clicked', self._go_forward_cb) - self.toolbar.insert(self._forward, -1) + toolbar.insert(self._forward, -1) self._forward.show() self._link_add = ToolButton('emblem-favorite') self._link_add.set_tooltip(_('Bookmark')) self._link_add.connect('clicked', self._link_add_clicked_cb) - self.toolbar.insert(self._link_add, -1) + toolbar.insert(self._link_add, -1) self._link_add.show() - stop_button = StopButton(self._activity) - self.toolbar.insert(stop_button, -1) + if NEW_TOOLBARS: + stop_button = StopButton(self._activity) + toolbar.insert(stop_button, -1) self._progress_listener = None self._history = None -- cgit v0.9.1