Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar/activity
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2007-05-16 04:41:45 (GMT)
committer Dan Williams <dcbw@redhat.com>2007-05-16 04:41:45 (GMT)
commite659d15384908dbfa99d5c78f443bb857cc74cfe (patch)
tree52498427bf10f69033cf268584e8cdc2c7fadbd5 /sugar/activity
parent28e8b9025e33102b270c2898e5c81a440375f7d0 (diff)
Make datastore find & update operations async
Diffstat (limited to 'sugar/activity')
-rw-r--r--sugar/activity/activity.py23
1 files changed, 18 insertions, 5 deletions
diff --git a/sugar/activity/activity.py b/sugar/activity/activity.py
index 85355f4..76e10b9 100644
--- a/sugar/activity/activity.py
+++ b/sugar/activity/activity.py
@@ -207,15 +207,20 @@ class Activity(Window, gtk.Container):
self.jobject['preview'] = ''
self.jobject['icon-color'] = profile.get_color().to_string()
self.jobject.file_path = ''
- try:
- datastore.write(self.jobject)
- except Exception, e:
- logging.error(e)
+ datastore.write(self.jobject,
+ reply_handler=self._internal_jobject_create_cb,
+ error_handler=self._internal_jobject_error_cb)
else:
self.jobject = None
self.connect('focus-out-event', self._focus_out_event_cb)
+ def _internal_jobject_create_cb(self):
+ pass
+
+ def _internal_jobject_error_cb(self, err):
+ logging.debug("Error creating activity datastore object: %s" % err)
+
def _focus_out_event_cb(self, widget, event):
if self.jobject:
self.save()
@@ -234,6 +239,12 @@ class Activity(Window, gtk.Container):
"""
raise NotImplementedError
+ def _internal_save_cb(self):
+ pass
+
+ def _internal_save_error_cb(self, err):
+ logging.debug("Error saving activity object to datastore: %s" % err)
+
def save(self):
"""Request that the activity is saved to the Journal."""
try:
@@ -241,7 +252,9 @@ class Activity(Window, gtk.Container):
self.write_file()
except NotImplementedError:
self.jobject.file_path = ''
- datastore.write(self.jobject)
+ datastore.write(self.jobject,
+ reply_handler=self._internal_save_cb,
+ error_handler=self._internal_save_error_cb)
def _internal_joined_cb(self, activity, success, err):
"""Callback when join has finished"""