diff options
author | Tomeu Vizoso <tomeu@sugarlabs.org> | 2009-07-07 09:44:01 (GMT) |
---|---|---|
committer | Tomeu Vizoso <tomeu@sugarlabs.org> | 2009-07-07 09:44:01 (GMT) |
commit | 0f33570021ca8a2191d3bc4c0e6a6235fae20ca5 (patch) | |
tree | 7122293265ddbf352be14616de1f7f4f3ca50b93 /src/jarabe/journal/objectchooser.py | |
parent | f5c01859cadf14f5fa737adb79449b21e79243b8 (diff) |
Fix object chooser
Diffstat (limited to 'src/jarabe/journal/objectchooser.py')
-rw-r--r-- | src/jarabe/journal/objectchooser.py | 59 |
1 files changed, 26 insertions, 33 deletions
diff --git a/src/jarabe/journal/objectchooser.py b/src/jarabe/journal/objectchooser.py index b70cf72..0e6de27 100644 --- a/src/jarabe/journal/objectchooser.py +++ b/src/jarabe/journal/objectchooser.py @@ -25,8 +25,8 @@ import wnck from sugar.graphics import style from sugar.graphics.toolbutton import ToolButton -from jarabe.journal.listview import ListView -from jarabe.journal.collapsedentry import BaseCollapsedEntry +from jarabe.journal.listview import BaseListView +from jarabe.journal.listmodel import ListModel from jarabe.journal.journaltoolbox import SearchToolbar from jarabe.journal.volumestoolbar import VolumesToolbar @@ -107,8 +107,8 @@ class ObjectChooser(gtk.Window): if window.get_xid() == parent.xid: self.destroy() - def __entry_activated_cb(self, list_view, entry): - self._selected_object_id = entry.metadata['uid'] + def __entry_activated_cb(self, list_view, uid): + self._selected_object_id = uid self.emit('response', gtk.RESPONSE_ACCEPT) def __delete_event_cb(self, chooser, event): @@ -163,44 +163,23 @@ class TitleBox(VolumesToolbar): self.insert(tool_item, -1) tool_item.show() -class ChooserCollapsedEntry(BaseCollapsedEntry): - __gtype_name__ = 'ChooserCollapsedEntry' +class ChooserListView(BaseListView): + __gtype_name__ = 'ChooserListView' __gsignals__ = { 'entry-activated': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, - ([])) + ([str])), } def __init__(self): - BaseCollapsedEntry.__init__(self) - - self.connect_after('button-release-event', - self.__button_release_event_cb) - self.connect('motion-notify-event', self.__motion_notify_event_cb) + BaseListView.__init__(self) - def __button_release_event_cb(self, entry, event): - self.emit('entry-activated') - return True + self.cell_icon.props.show_palette = False + self.tree_view.props.hover_selection = True - def __motion_notify_event_cb(self, entry, event): - if event.detail == hippo.MOTION_DETAIL_ENTER: - self.props.background_color = style.COLOR_PANEL_GREY.get_int() - elif event.detail == hippo.MOTION_DETAIL_LEAVE: - self.props.background_color = style.COLOR_WHITE.get_int() - return False - -class ChooserListView(ListView): - __gtype_name__ = 'ChooserListView' - - __gsignals__ = { - 'entry-activated': (gobject.SIGNAL_RUN_FIRST, - gobject.TYPE_NONE, - ([object])) - } - - def __init__(self): - ListView.__init__(self) + self.tree_view.connect('button-release-event', + self.__button_release_event_cb) def create_entry(self): entry = ChooserCollapsedEntry() @@ -210,3 +189,17 @@ class ChooserListView(ListView): def __entry_activated_cb(self, entry): self.emit('entry-activated', entry) + def __button_release_event_cb(self, tree_view, event): + if event.window != tree_view.get_bin_window(): + return False + + pos = tree_view.get_path_at_pos(event.x, event.y) + if pos is None: + return False + + path, column_, x_, y_ = pos + uid = tree_view.get_model()[path][ListModel.COLUMN_UID] + self.emit('entry-activated', uid) + + return False + |