From fb826658597dbfc72c1f99f54b8a515ae0b1e753 Mon Sep 17 00:00:00 2001 From: Simon Schampijer Date: Thu, 29 Jan 2009 13:07:50 +0000 Subject: Add 'View Details' option to object palette in journal --- (limited to 'src') diff --git a/src/jarabe/journal/collapsedentry.py b/src/jarabe/journal/collapsedentry.py index 8930e59..3eeb087 100644 --- a/src/jarabe/journal/collapsedentry.py +++ b/src/jarabe/journal/collapsedentry.py @@ -61,6 +61,15 @@ class BuddyList(hippo.CanvasBox): self.append(icon) class EntryIcon(CanvasIcon): + + __gtype_name__ = 'EntryIcon' + + __gsignals__ = { + 'detail-clicked': (gobject.SIGNAL_RUN_FIRST, + gobject.TYPE_NONE, + ([])) + } + def __init__(self, **kwargs): CanvasIcon.__init__(self, **kwargs) self._metadata = None @@ -72,10 +81,16 @@ class EntryIcon(CanvasIcon): def create_palette(self): if self.show_palette: - return ObjectPalette(self._metadata) + palette = ObjectPalette(self._metadata, detail=True) + palette.connect('detail-clicked', + self.__detail_clicked_cb) + return palette else: return None + def __detail_clicked_cb(self, event): + self.emit('detail-clicked') + show_palette = gobject.property(type=bool, default=False) class BaseCollapsedEntry(hippo.CanvasBox): @@ -275,6 +290,8 @@ class CollapsedEntry(BaseCollapsedEntry): self.icon.props.show_palette = True self.icon.connect('button-release-event', self.__icon_button_release_event_cb) + self.icon.connect('detail-clicked', + self.__detail_clicked_palette_cb) self.title.connect('button_release_event', self.__title_button_release_event_cb) @@ -321,10 +338,16 @@ class CollapsedEntry(BaseCollapsedEntry): metadata = property(BaseCollapsedEntry.get_metadata, set_metadata) - def __detail_button_release_event_cb(self, button, event): - logging.debug('_detail_button_release_event_cb') + def _detail_clicked(self): if not self.is_in_progress(): self.emit('detail-clicked') + + def __detail_clicked_palette_cb(self, entry): + self._detail_clicked() + + def __detail_button_release_event_cb(self, button, event): + logging.debug('_detail_button_release_event_cb') + self._detail_clicked() return True def __detail_button_motion_notify_event_cb(self, button, event): diff --git a/src/jarabe/journal/palettes.py b/src/jarabe/journal/palettes.py index a56d373..10917cf 100644 --- a/src/jarabe/journal/palettes.py +++ b/src/jarabe/journal/palettes.py @@ -35,7 +35,16 @@ from jarabe.journal import misc from jarabe.journal import model class ObjectPalette(Palette): - def __init__(self, metadata): + + __gtype_name__ = 'ObjectPalette' + + __gsignals__ = { + 'detail-clicked': (gobject.SIGNAL_RUN_FIRST, + gobject.TYPE_NONE, + ([])) + } + + def __init__(self, metadata, detail=False): self._metadata = metadata self._temp_file_path = None @@ -94,6 +103,12 @@ class ObjectPalette(Palette): 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) @@ -126,6 +141,9 @@ class ObjectPalette(Palette): registry.uninstall(bundle) model.delete(self._metadata['uid']) + def __detail_activate_cb(self, menu_item): + self.emit('detail-clicked') + def __friend_selected_cb(self, menu_item, buddy): logging.debug('__friend_selected_cb') file_name = model.get_file(self._metadata['uid']) -- cgit v0.9.1