The patch disables the Start and Start With menu items for files which can't be opened by any installed activity and instead replace it with a hover dropdown with a menu item 'No activity installed to start entry' --- src/jarabe/journal/palettes.py | 99 +++++++++++++++++++++------------------ 1 files changed, 53 insertions(+), 46 deletions(-)
diff --git a/src/jarabe/journal/palettes.py b/src/jarabe/journal/palettes.py index 7c3e5ff..56df595 100644 --- a/src/jarabe/journal/palettes.py +++ b/src/jarabe/journal/palettes.py @@ -62,51 +62,59 @@ class ObjectPalette(Palette): Palette.__init__(self, primary_text=title, icon=activity_icon) - 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() - - 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')) - menu_item = MenuItem(_('Copy')) - icon = Icon(icon_name='edit-copy', xo_color=color, - icon_size=gtk.ICON_SIZE_MENU) - menu_item.set_image(icon) - menu_item.connect('activate', self.__copy_activate_cb) - self.menu.append(menu_item) - menu_item.show() - - menu_item = MenuItem(_('Send to'), 'document-send') - self.menu.append(menu_item) - menu_item.show() - - friends_menu = FriendsMenu() - friends_menu.connect('friend-selected', self.__friend_selected_cb) - menu_item.set_submenu(friends_menu) - - if detail == True: - menu_item = MenuItem(_('View Details'), 'go-right') - menu_item.connect('activate', self.__detail_activate_cb) - self.menu.append(menu_item) - menu_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 misc.get_activities(metadata): + 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() + + 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) + + else: + resume_label = _('No activity installed to start entry') + menu_item = MenuItem(resume_label) + menu_item.set_sensitive(False) + self.menu.append(menu_item) + menu_item.show() + + client = gconf.client_get_default() + color = XoColor(client.get_string('/desktop/sugar/user/color')) + menu_item = MenuItem(_('Copy')) + icon = Icon(icon_name='edit-copy', xo_color=color, + icon_size=gtk.ICON_SIZE_MENU) + menu_item.set_image(icon) + menu_item.connect('activate', self.__copy_activate_cb) + self.menu.append(menu_item) + menu_item.show() + + menu_item = MenuItem(_('Send to'), 'document-send') + self.menu.append(menu_item) + menu_item.show() + + friends_menu = FriendsMenu() + friends_menu.connect('friend-selected', self.__friend_selected_cb) + menu_item.set_submenu(friends_menu) + + if detail == True: + menu_item = MenuItem(_('View Details'), 'go-right') + menu_item.connect('activate', self.__detail_activate_cb) + self.menu.append(menu_item) + menu_item.show() + + menu_item = MenuItem(_('Erase'), 'list-remove') + menu_item.connect('activate', self.__erase_activate_cb) + self.menu.append(menu_item) + menu_item.show() def __start_activate_cb(self, menu_item): misc.resume(self._metadata) @@ -219,7 +227,6 @@ class StartWithMenu(gtk.Menu): mime_registry.set_default_activity(mime_type, service_name) misc.resume(self._metadata, service_name) - class BuddyPalette(Palette): def __init__(self, buddy): self._buddy = buddy -- 1.7.0.4 _______________________________________________ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel