From 48fce2af17dedbb28213a1e3f935615b1d67d500 Mon Sep 17 00:00:00 2001 From: Tomeu Vizoso Date: Wed, 19 Aug 2009 07:27:53 +0000 Subject: Remove "Erase" and "Remove favorite" Activity palette entries #1128 from Home favorite view --- (limited to 'src') diff --git a/src/jarabe/desktop/activitieslist.py b/src/jarabe/desktop/activitieslist.py index 1284af4..8b35560 100644 --- a/src/jarabe/desktop/activitieslist.py +++ b/src/jarabe/desktop/activitieslist.py @@ -15,6 +15,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +import os import logging from gettext import gettext as _ @@ -22,13 +23,13 @@ import gobject import pango import gconf import gtk -import hippo from sugar import util from sugar.graphics import style -from sugar.graphics.icon import CanvasIcon, CellRendererIcon -from sugar.graphics.palette import Palette +from sugar.graphics.icon import Icon, CellRendererIcon from sugar.graphics.xocolor import XoColor +from sugar.graphics.menuitem import MenuItem +from sugar.graphics.alert import Alert from sugar.activity import activityfactory from sugar.activity.activityhandle import ActivityHandle @@ -199,7 +200,6 @@ class ListModel(gtk.TreeModelSort): def __activity_removed_cb(self, activity_registry, activity_info): bundle_id = activity_info.get_bundle_id() version = activity_info.get_activity_version() - favorite = activity_registry.is_bundle_favorite(bundle_id, version) for row in self._model: if row[ListModel.COLUMN_BUNDLE_ID] == bundle_id and \ row[ListModel.COLUMN_VERSION] == version: @@ -286,7 +286,7 @@ class CellRendererActivityIcon(CellRendererIcon): bundle_id = row[ListModel.COLUMN_BUNDLE_ID] registry = bundleregistry.get_registry() - palette = ActivityPalette(registry.get_bundle(bundle_id)) + palette = ActivityListPalette(registry.get_bundle(bundle_id)) palette.connect('erase-activated', self.__erase_activated_cb) return palette @@ -296,11 +296,6 @@ class CellRendererActivityIcon(CellRendererIcon): class ActivitiesList(gtk.VBox): __gtype_name__ = 'SugarActivitiesList' - __gsignals__ = { - 'erase-activated' : (gobject.SIGNAL_RUN_FIRST, - gobject.TYPE_NONE, ([str])) - } - def __init__(self): logging.debug('STARTUP: Loading the activities list') @@ -353,5 +348,106 @@ class ActivitiesList(gtk.VBox): self._alert = None def __erase_activated_cb(self, tree_view, bundle_id): - self.emit('erase-activated', bundle_id) + registry = bundleregistry.get_registry() + activity_info = registry.get_bundle(bundle_id) + + alert = Alert() + alert.props.title = _('Confirm erase') + alert.props.msg = \ + _('Confirm erase: Do you want to permanently erase %s?') \ + % activity_info.get_name() + + cancel_icon = Icon(icon_name='dialog-cancel') + alert.add_button(gtk.RESPONSE_CANCEL, _('Keep'), cancel_icon) + + erase_icon = Icon(icon_name='dialog-ok') + alert.add_button(gtk.RESPONSE_OK, _('Erase'), erase_icon) + + alert.connect('response', self.__erase_confirmation_dialog_response_cb, + bundle_id) + + self.add_alert(alert) + + def __erase_confirmation_dialog_response_cb(self, alert, response_id, + bundle_id): + self.remove_alert() + if response_id == gtk.RESPONSE_OK: + registry = bundleregistry.get_registry() + bundle = registry.get_bundle(bundle_id) + registry.uninstall(bundle) + +class ActivityListPalette(ActivityPalette): + __gtype_name__ = 'SugarActivityListPalette' + + __gsignals__ = { + 'erase-activated' : (gobject.SIGNAL_RUN_FIRST, + gobject.TYPE_NONE, ([str])) + } + + def __init__(self, activity_info): + ActivityPalette.__init__(self, activity_info) + + self._bundle_id = activity_info.get_bundle_id() + self._version = activity_info.get_activity_version() + + registry = bundleregistry.get_registry() + self._favorite = registry.is_bundle_favorite(self._bundle_id, + self._version) + + self._favorite_item = MenuItem('') + self._favorite_icon = Icon(icon_name='emblem-favorite', + icon_size=gtk.ICON_SIZE_MENU) + self._favorite_item.set_image(self._favorite_icon) + self._favorite_item.connect('activate', + self.__change_favorite_activate_cb) + self.menu.append(self._favorite_item) + self._favorite_item.show() + + menu_item = MenuItem(_('Erase'), 'list-remove') + menu_item.connect('activate', self.__erase_activate_cb) + self.menu.append(menu_item) + menu_item.show() + + if not os.access(activity_info.get_path(), os.W_OK): + menu_item.props.sensitive = False + + registry = bundleregistry.get_registry() + self._activity_changed_sid = registry.connect('bundle_changed', + self.__activity_changed_cb) + self._update_favorite_item() + + self.connect('destroy', self.__destroy_cb) + + def __destroy_cb(self, palette): + self.disconnect(self._activity_changed_sid) + + def _update_favorite_item(self): + label = self._favorite_item.child + if self._favorite: + label.set_text(_('Remove favorite')) + xo_color = XoColor('%s,%s' % (style.COLOR_WHITE.get_svg(), + style.COLOR_TRANSPARENT.get_svg())) + else: + label.set_text(_('Make favorite')) + client = gconf.client_get_default() + xo_color = XoColor(client.get_string("/desktop/sugar/user/color")) + + self._favorite_icon.props.xo_color = xo_color + + def __change_favorite_activate_cb(self, menu_item): + registry = bundleregistry.get_registry() + registry.set_bundle_favorite(self._bundle_id, + self._version, + not self._favorite) + + def __activity_changed_cb(self, activity_registry, activity_info): + if activity_info.get_bundle_id() == self._bundle_id and \ + activity_info.get_activity_version() == self._version: + registry = bundleregistry.get_registry() + self._favorite = registry.is_bundle_favorite(self._bundle_id, + self._version) + self._update_favorite_item() + + def __erase_activate_cb(self, menu_item): + self.emit('erase-activated', self._bundle_id) diff --git a/src/jarabe/desktop/favoritesview.py b/src/jarabe/desktop/favoritesview.py index 4037fae..6ca8732 100644 --- a/src/jarabe/desktop/favoritesview.py +++ b/src/jarabe/desktop/favoritesview.py @@ -65,11 +65,6 @@ about the layout can be accessed with fields of the class.""" class FavoritesView(hippo.Canvas): __gtype_name__ = 'SugarFavoritesView' - __gsignals__ = { - 'erase-activated' : (gobject.SIGNAL_RUN_FIRST, - gobject.TYPE_NONE, ([str])) - } - def __init__(self, **kwargs): logging.debug('STARTUP: Loading the favorites view') @@ -134,14 +129,10 @@ class FavoritesView(hippo.Canvas): if activity_info.get_bundle_id() == 'org.laptop.JournalActivity': return icon = ActivityIcon(activity_info, self._datastore_listener) - icon.connect('erase-activated', self.__erase_activated_cb) icon.props.size = style.STANDARD_ICON_SIZE self._box.insert_sorted(icon, 0, self._layout.compare_activities) self._layout.append(icon) - def __erase_activated_cb(self, activity_icon, bundle_id): - self.emit('erase-activated', bundle_id) - def __activity_added_cb(self, activity_registry, activity_info): registry = bundleregistry.get_registry() if registry.is_bundle_favorite(activity_info.get_bundle_id(), @@ -402,11 +393,6 @@ class ActivityIcon(CanvasIcon): _BORDER_WIDTH = style.zoom(3) - __gsignals__ = { - 'erase-activated' : (gobject.SIGNAL_RUN_FIRST, - gobject.TYPE_NONE, ([str])) - } - def __init__(self, activity_info, datastore_listener): CanvasIcon.__init__(self, cache=True, file_name=activity_info.get_icon()) @@ -470,12 +456,8 @@ class ActivityIcon(CanvasIcon): def create_palette(self): palette = FavoritePalette(self._activity_info, self._journal_entries) palette.connect('activate', self.__palette_activate_cb) - palette.connect('erase-activated', self.__erase_activated_cb) return palette - def __erase_activated_cb(self, palette, bundle_id): - self.emit('erase-activated', bundle_id) - def __palette_activate_cb(self, palette): self._activate() diff --git a/src/jarabe/desktop/homebox.py b/src/jarabe/desktop/homebox.py index 6fdc8f1..88da9d2 100644 --- a/src/jarabe/desktop/homebox.py +++ b/src/jarabe/desktop/homebox.py @@ -27,7 +27,6 @@ from sugar.graphics.radiotoolbutton import RadioToolButton from sugar.graphics.alert import Alert from sugar.graphics.icon import Icon -from jarabe.model import bundleregistry from jarabe.desktop import favoritesview from jarabe.desktop.activitieslist import ActivitiesList @@ -47,10 +46,6 @@ class HomeBox(gtk.VBox): self._favorites_view = favoritesview.FavoritesView() self._list_view = ActivitiesList() - self._favorites_view.connect('erase-activated', - self.__erase_activated_cb) - self._list_view.connect('erase-activated', self.__erase_activated_cb) - self._toolbar = HomeToolbar() self._toolbar.connect('query-changed', self.__toolbar_query_changed_cb) self._toolbar.connect('view-changed', self.__toolbar_view_changed_cb) @@ -58,44 +53,6 @@ class HomeBox(gtk.VBox): self._toolbar.show() self._set_view(_FAVORITES_VIEW) - - def __erase_activated_cb(self, view, bundle_id): - registry = bundleregistry.get_registry() - activity_info = registry.get_bundle(bundle_id) - - alert = Alert() - alert.props.title = _('Confirm erase') - alert.props.msg = \ - _('Confirm erase: Do you want to permanently erase %s?') \ - % activity_info.get_name() - - cancel_icon = Icon(icon_name='dialog-cancel') - alert.add_button(gtk.RESPONSE_CANCEL, _('Keep'), cancel_icon) - - erase_icon = Icon(icon_name='dialog-ok') - alert.add_button(gtk.RESPONSE_OK, _('Erase'), erase_icon) - - if self._list_view in self.get_children(): - self._list_view.add_alert(alert) - else: - self._favorites_view.add_alert(alert) - # TODO: If the favorite layouts didn't hardcoded the box size, we could - # just pack an alert between the toolbar and the canvas. - #self.pack_start(alert, False) - #self.reorder_child(alert, 1) - alert.connect('response', self.__erase_confirmation_dialog_response_cb, - bundle_id) - - def __erase_confirmation_dialog_response_cb(self, alert, response_id, - bundle_id): - if self._list_view in self.get_children(): - self._list_view.remove_alert() - else: - self._favorites_view.remove_alert() - if response_id == gtk.RESPONSE_OK: - registry = bundleregistry.get_registry() - bundle = registry.get_bundle(bundle_id) - registry.uninstall(bundle) def show_software_updates_alert(self): alert = Alert() diff --git a/src/jarabe/view/palettes.py b/src/jarabe/view/palettes.py index 36e8590..317a15f 100644 --- a/src/jarabe/view/palettes.py +++ b/src/jarabe/view/palettes.py @@ -17,10 +17,9 @@ import os import statvfs from gettext import gettext as _ -import gconf import logging -import gobject +import gconf import gtk from sugar import env @@ -32,7 +31,6 @@ from sugar.graphics.xocolor import XoColor from sugar.activity import activityfactory from sugar.activity.activityhandle import ActivityHandle -from jarabe.model import bundleregistry from jarabe.model import shell from jarabe.view import launcher from jarabe.view.viewsource import setup_view_source @@ -107,11 +105,6 @@ class CurrentActivityPalette(BasePalette): class ActivityPalette(Palette): __gtype_name__ = 'SugarActivityPalette' - __gsignals__ = { - 'erase-activated' : (gobject.SIGNAL_RUN_FIRST, - gobject.TYPE_NONE, ([str])) - } - def __init__(self, activity_info): client = gconf.client_get_default() color = XoColor(client.get_string("/desktop/sugar/user/color")) @@ -122,14 +115,6 @@ class ActivityPalette(Palette): Palette.__init__(self, primary_text=activity_info.get_name(), icon=activity_icon) - registry = bundleregistry.get_registry() - - self._bundle = activity_info - self._bundle_id = activity_info.get_bundle_id() - self._version = activity_info.get_activity_version() - self._favorite = registry.is_bundle_favorite(self._bundle_id, - self._version) - xo_color = XoColor('%s,%s' % (style.COLOR_WHITE.get_svg(), style.COLOR_TRANSPARENT.get_svg())) menu_item = MenuItem(text_label=_('Start new'), @@ -141,46 +126,6 @@ class ActivityPalette(Palette): # TODO: start-with - self._favorite_item = MenuItem('') - self._favorite_icon = Icon(icon_name='emblem-favorite', - icon_size=gtk.ICON_SIZE_MENU) - self._favorite_item.set_image(self._favorite_icon) - self._favorite_item.connect('activate', - self.__change_favorite_activate_cb) - self.menu.append(self._favorite_item) - self._favorite_item.show() - - menu_item = MenuItem(_('Erase'), 'list-remove') - menu_item.connect('activate', self.__erase_activate_cb) - self.menu.append(menu_item) - menu_item.show() - - if not os.access(self._bundle.get_path(), os.W_OK): - menu_item.props.sensitive = False - - registry = bundleregistry.get_registry() - self._activity_changed_sid = registry.connect('bundle_changed', - self.__activity_changed_cb) - self._update_favorite_item() - - self.connect('destroy', self.__destroy_cb) - - def __destroy_cb(self, palette): - self.disconnect(self._activity_changed_sid) - - def _update_favorite_item(self): - label = self._favorite_item.child - if self._favorite: - label.set_text(_('Remove favorite')) - xo_color = XoColor('%s,%s' % (style.COLOR_WHITE.get_svg(), - style.COLOR_TRANSPARENT.get_svg())) - else: - label.set_text(_('Make favorite')) - client = gconf.client_get_default() - xo_color = XoColor(client.get_string("/desktop/sugar/user/color")) - - self._favorite_icon.props.xo_color = xo_color - def __start_activate_cb(self, menu_item): self.popdown(immediate=True) @@ -195,23 +140,6 @@ class ActivityPalette(Palette): handle = ActivityHandle(activity_id) activityfactory.create(self._bundle, handle) - def __change_favorite_activate_cb(self, menu_item): - registry = bundleregistry.get_registry() - registry.set_bundle_favorite(self._bundle_id, - self._version, - not self._favorite) - - def __activity_changed_cb(self, activity_registry, activity_info): - if activity_info.get_bundle_id() == self._bundle_id and \ - activity_info.get_activity_version() == self._version: - registry = bundleregistry.get_registry() - self._favorite = registry.is_bundle_favorite(self._bundle_id, - self._version) - self._update_favorite_item() - - def __erase_activate_cb(self, menu_item): - self.emit('erase-activated', self._bundle_id) - class JournalPalette(BasePalette): def __init__(self, home_activity): self._home_activity = home_activity -- cgit v0.9.1