From f89b32f0c0297ff3375a996631525353bec823a9 Mon Sep 17 00:00:00 2001 From: Simon Schampijer Date: Wed, 21 Jan 2009 17:01:12 +0000 Subject: add start-with option to objectpalette in the journal --- (limited to 'src') diff --git a/src/jarabe/journal/palettes.py b/src/jarabe/journal/palettes.py index 9730dee..99db82f 100644 --- a/src/jarabe/journal/palettes.py +++ b/src/jarabe/journal/palettes.py @@ -61,14 +61,20 @@ class ObjectPalette(Palette): if metadata.get('activity_id', ''): resume_label = _('Resume') + resume_with_label = _('Resume with') else: resume_label = _('Start') + resume_with_label = _('Start with') menu_item = MenuItem(resume_label, 'activity-start') menu_item.connect('activate', self.__start_activate_cb) self.menu.append(menu_item) menu_item.show() - # TODO: Add "Start with" menu item + menu_item = MenuItem(resume_with_label, 'activity-start') + self.menu.append(menu_item) + menu_item.show() + start_with_menu = StartWithMenu(self._metadata) + menu_item.set_submenu(start_with_menu) client = gconf.client_get_default() color = XoColor(client.get_string('/desktop/sugar/user/color')) @@ -164,6 +170,38 @@ class FriendsMenu(gtk.Menu): def __item_activate_cb(self, menu_item, friend): self.emit('friend-selected', friend) + +class StartWithMenu(gtk.Menu): + __gtype_name__ = 'JournalStartWithMenu' + + def __init__(self, metadata): + gobject.GObject.__init__(self) + + self._metadata = metadata + + for activity_info in misc.get_activities(metadata): + menu_item = MenuItem(activity_info.get_name()) + menu_item.set_image(Icon(file=activity_info.get_icon(), + icon_size=gtk.ICON_SIZE_MENU)) + menu_item.connect('activate', self.__item_activate_cb, + activity_info.get_bundle_id()) + self.append(menu_item) + menu_item.show() + + if not self.get_children(): + if metadata.get('activity_id', ''): + resume_label = _('No activity to resume entry') + else: + resume_label = _('No activity to start entry') + menu_item = MenuItem(resume_label) + menu_item.set_sensitive(False) + self.append(menu_item) + menu_item.show() + + def __item_activate_cb(self, menu_item, service_name): + misc.resume(self._metadata, service_name) + + class BuddyPalette(Palette): def __init__(self, buddy): self._buddy = buddy -- cgit v0.9.1