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:
Diffstat (limited to 'src/jarabe/journal/objectchooser.py')
-rw-r--r--src/jarabe/journal/objectchooser.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/jarabe/journal/objectchooser.py b/src/jarabe/journal/objectchooser.py
index ecb8ecf..59df14b 100644
--- a/src/jarabe/journal/objectchooser.py
+++ b/src/jarabe/journal/objectchooser.py
@@ -20,9 +20,12 @@ import logging
import gobject
import gtk
import wnck
+import os
+from sugar import env
from sugar.graphics import style
from sugar.graphics.toolbutton import ToolButton
+from sugar.datastore import datastore
from jarabe.journal.listview import BaseListView
from jarabe.journal.listmodel import ListModel
@@ -46,6 +49,7 @@ class ObjectChooser(gtk.Window):
self.set_border_width(style.LINE_WIDTH)
self._selected_object_id = None
+ self._callback = None
self.add_events(gtk.gdk.VISIBILITY_NOTIFY_MASK)
self.connect('visibility-notify-event',
@@ -109,6 +113,15 @@ class ObjectChooser(gtk.Window):
self._selected_object_id = uid
self.emit('response', gtk.RESPONSE_ACCEPT)
+ if self._callback is not None:
+ self._callback(self._selected_object_id)
+
+ def get_selected_object(self):
+ if self._selected_object_id is None:
+ return None
+ else:
+ return datastore.get(self._selected_object_id)
+
def __delete_event_cb(self, chooser, event):
self.emit('response', gtk.RESPONSE_DELETE_EVENT)
@@ -120,6 +133,9 @@ class ObjectChooser(gtk.Window):
def __close_button_clicked_cb(self, button):
self.emit('response', gtk.RESPONSE_DELETE_EVENT)
+ if self._callback is not None:
+ self._callback(self._selected_object_id)
+
def get_selected_object_id(self):
return self._selected_object_id
@@ -135,6 +151,9 @@ class ObjectChooser(gtk.Window):
visible = event.state == gtk.gdk.VISIBILITY_FULLY_OBSCURED
self._list_view.set_is_visible(visible)
+ def _set_callback(self, callback):
+ self._callback = callback
+
class TitleBox(VolumesToolbar):
__gtype_name__ = 'TitleBox'