diff options
author | Dan Williams <dcbw@redhat.com> | 2007-05-16 04:41:45 (GMT) |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2007-05-16 04:41:45 (GMT) |
commit | e659d15384908dbfa99d5c78f443bb857cc74cfe (patch) | |
tree | 52498427bf10f69033cf268584e8cdc2c7fadbd5 /sugar/activity | |
parent | 28e8b9025e33102b270c2898e5c81a440375f7d0 (diff) |
Make datastore find & update operations async
Diffstat (limited to 'sugar/activity')
-rw-r--r-- | sugar/activity/activity.py | 23 |
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""" |