Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSascha 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)
commit0213397cb2a0afa5ecfae757924db060faebe341 (patch)
treef9eff8787048a5085b9125c526efd04f3675d1d8
parent0930e1c1ada119c22953508fab637ace26188d61 (diff)
make compatible with Sugar 0.84 (pre-0.86 toolbars)
-rw-r--r--backup.py87
1 files changed, 66 insertions, 21 deletions
diff --git a/backup.py b/backup.py
index 35d86ca..13c683f 100644
--- a/backup.py
+++ b/backup.py
@@ -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):