Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/jarabe/journal/objectchooser.py
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu@sugarlabs.org>2009-07-07 09:44:01 (GMT)
committer Tomeu Vizoso <tomeu@sugarlabs.org>2009-07-07 09:44:01 (GMT)
commit0f33570021ca8a2191d3bc4c0e6a6235fae20ca5 (patch)
tree7122293265ddbf352be14616de1f7f4f3ca50b93 /src/jarabe/journal/objectchooser.py
parentf5c01859cadf14f5fa737adb79449b21e79243b8 (diff)
Fix object chooser
Diffstat (limited to 'src/jarabe/journal/objectchooser.py')
-rw-r--r--src/jarabe/journal/objectchooser.py59
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
+