diff options
author | Sascha Silbe <sascha-pgp@silbe.org> | 2010-08-29 22:48:40 (GMT) |
---|---|---|
committer | Sascha Silbe <sascha-pgp@silbe.org> | 2010-08-29 22:48:40 (GMT) |
commit | 0213397cb2a0afa5ecfae757924db060faebe341 (patch) | |
tree | f9eff8787048a5085b9125c526efd04f3675d1d8 | |
parent | 0930e1c1ada119c22953508fab637ace26188d61 (diff) |
make compatible with Sugar 0.84 (pre-0.86 toolbars)
-rw-r--r-- | backup.py | 87 |
1 files changed, 66 insertions, 21 deletions
@@ -33,13 +33,20 @@ import gobject import gtk #from sugar.activity.widgets import ActivityToolbarButton -from sugar.activity.widgets import StopButton +try: + from sugar.activity.widgets import StopButton + from sugar.graphics.icon import CellRendererIcon + from sugar.graphics.toolbarbox import ToolbarBox + pre_086_toolbars = False + +except ImportError: + from sugar.graphics.toolbox import Toolbox + pre_086_toolbars = True + from sugar.activity import activity import sugar.env -from sugar.graphics.icon import CellRendererIcon from sugar.graphics import style from sugar.graphics.toolbutton import ToolButton -from sugar.graphics.toolbarbox import ToolbarBox from sugar.graphics.xocolor import XoColor import sugar.logger from sugar import profile @@ -84,6 +91,19 @@ class BackupButton(ToolButton): self.props.accelerator = '<Alt>b' +if pre_086_toolbars: + class StopButton(ToolButton): + + def __init__(self, activity, **kwargs): + ToolButton.__init__(self, 'activity-stop', **kwargs) + self.props.tooltip = _('Stop') + self.props.accelerator = '<Ctrl>Q' + self.connect('clicked', self.__stop_button_clicked_cb, activity) + + def __stop_button_clicked_cb(self, button, activity): + activity.close() + + class AsyncBackup(gobject.GObject): """ Run a data store backup asynchronously. @@ -427,21 +447,35 @@ class BackupActivity(activity.Activity): vbox.show() def _setup_toolbar(self): - toolbar_box = ToolbarBox() + if pre_086_toolbars: + self.toolbox = Toolbox() + self.set_toolbox(self.toolbox) + + toolbar = gtk.Toolbar() + self.toolbox.add_toolbar('Toolbar', toolbar) + toolbar_box = self.toolbox + + else: + toolbar_box = ToolbarBox() + toolbar = toolbar_box.toolbar + self.set_toolbar_box(toolbar_box) self._media_combo_model = gtk.ListStore(str, str, str, str) self._media_combo = gtk.ComboBox(self._media_combo_model) - icon_renderer = CellRendererIcon(self._media_combo) - icon_renderer.props.xo_color = self._color - icon_renderer.props.width = style.STANDARD_ICON_SIZE + \ - style.DEFAULT_SPACING - icon_renderer.props.height = style.STANDARD_ICON_SIZE - icon_renderer.props.size = style.STANDARD_ICON_SIZE - icon_renderer.props.xpad = style.DEFAULT_PADDING - icon_renderer.props.ypad = style.DEFAULT_PADDING - self._media_combo.pack_start(icon_renderer, False) - self._media_combo.add_attribute(icon_renderer, 'icon_name', - self._MEDIA_COMBO_ICON_COLUMN) + if not pre_086_toolbars: + icon_renderer = CellRendererIcon(self._media_combo) + icon_renderer.props.xo_color = self._color + icon_renderer.props.width = style.STANDARD_ICON_SIZE + \ + style.DEFAULT_SPACING + icon_renderer.props.height = style.STANDARD_ICON_SIZE + icon_renderer.props.size = style.STANDARD_ICON_SIZE + icon_renderer.props.xpad = style.DEFAULT_PADDING + icon_renderer.props.ypad = style.DEFAULT_PADDING + self._media_combo.pack_start(icon_renderer, False) + self._media_combo.add_attribute(icon_renderer, 'icon_name', + self._MEDIA_COMBO_ICON_COLUMN) + # FIXME: icon_renderer for pre-0.86 + name_renderer = gtk.CellRendererText() self._media_combo.pack_start(name_renderer, False) self._media_combo.add_attribute(name_renderer, 'text', @@ -456,22 +490,33 @@ class BackupActivity(activity.Activity): # FIXME: looks like plain GTK, not like Sugar tooltip_text = _('Storage medium to store the backup on') tool_item.set_tooltip_text(tooltip_text.encode('utf-8')) - toolbar_box.toolbar.insert(tool_item, -1) + toolbar.insert(tool_item, -1) + + if pre_086_toolbars: + self._backup_button = gtk.ToolButton() + self._backup_button.props.icon_name = 'journal-export' + label_text = _('Backup Journal') + try: + self._backup_button.props.tooltip = label_text.encode('utf-8') + except AttributeError: + pass + + else: + self._backup_button = BackupButton() - self._backup_button = BackupButton() self._backup_button.connect('clicked', self._backup_cb) self._backup_button.set_sensitive(False) - toolbar_box.toolbar.insert(self._backup_button, -1) + toolbar.insert(self._backup_button, -1) separator = gtk.SeparatorToolItem() separator.props.draw = False separator.set_expand(True) - toolbar_box.toolbar.insert(separator, -1) + toolbar.insert(separator, -1) stop_button = StopButton(self) - toolbar_box.toolbar.insert(stop_button, -1) - self.set_toolbar_box(toolbar_box) + toolbar.insert(stop_button, -1) + toolbar_box.show_all() def _backup_cb(self, button): |