Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWade Brainerd <wadetb@gmail.com>2009-11-29 23:27:57 (GMT)
committer Wade Brainerd <wadetb@gmail.com>2009-11-29 23:33:54 (GMT)
commit584939d3bc217b9463703e9a903caadf80c50d00 (patch)
tree40bcadfcebe821cf4c45e80fcb79d0649d5a110c
parente82bbcedd1d3bc5780a30ceb6b15712719897a6e (diff)
Fall back to old style toolbars when the new classes are not available.
-rw-r--r--webactivity.py68
-rw-r--r--webtoolbar.py41
2 files changed, 79 insertions, 30 deletions
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