diff options
author | Tomeu Vizoso <tomeu.vizoso@collabora.co.uk> | 2010-08-17 10:00:45 (GMT) |
---|---|---|
committer | Tomeu Vizoso <tomeu.vizoso@collabora.co.uk> | 2010-08-20 13:33:54 (GMT) |
commit | 1af1bc97134663fdbb9a7c71fb1b1b4aad8545ed (patch) | |
tree | 335d15f01ed9454de3780371ab6fa543a6abc8c6 /src/sugar/activity/activity.py | |
parent | 56679a3de6f4731e87d9e997abcdec1d1dddc040 (diff) |
Address several nitpicks from Marco
Diffstat (limited to 'src/sugar/activity/activity.py')
-rw-r--r-- | src/sugar/activity/activity.py | 54 |
1 files changed, 31 insertions, 23 deletions
diff --git a/src/sugar/activity/activity.py b/src/sugar/activity/activity.py index 9381a3f..0bda2ea 100644 --- a/src/sugar/activity/activity.py +++ b/src/sugar/activity/activity.py @@ -317,9 +317,9 @@ class Activity(Window, gtk.Container): self._client_handler = _ClientHandler( self.get_bundle_id(), partial(self.__got_channel_cb, wait_loop)) - # The current API requires that self.shared_activity is set before - # exiting from __init__, so we wait until we have got the shared - # activity. + # FIXME: The current API requires that self.shared_activity is set + # before exiting from __init__, so we wait until we have got the + # shared activity. http://bugs.sugarlabs.org/ticket/2168 wait_loop.run() else: pservice = presenceservice.get_instance() @@ -329,27 +329,35 @@ class Activity(Window, gtk.Container): if handle.object_id is None and create_jobject: logging.debug('Creating a jobject.') - self._jobject = datastore.create() - title = _('%s Activity') % get_bundle_name() - self._jobject.metadata['title'] = title + self._jobject = self._initialize_journal_object() self.set_title(self._jobject.metadata['title']) - self._jobject.metadata['title_set_by_user'] = '0' - self._jobject.metadata['activity'] = self.get_bundle_id() - self._jobject.metadata['activity_id'] = self.get_id() - self._jobject.metadata['keep'] = '0' - self._jobject.metadata['preview'] = '' - self._jobject.metadata['share-scope'] = SCOPE_PRIVATE - if self.shared_activity is not None: - icon_color = self.shared_activity.props.color - else: - client = gconf.client_get_default() - icon_color = client.get_string('/desktop/sugar/user/color') - self._jobject.metadata['icon-color'] = icon_color - - self._jobject.file_path = '' - # Cannot call datastore.write async for creates: - # https://dev.laptop.org/ticket/3071 - datastore.write(self._jobject) + + def _initialize_journal_object(self): + title = _('%s Activity') % get_bundle_name() + + if self.shared_activity is not None: + icon_color = self.shared_activity.props.color + else: + client = gconf.client_get_default() + icon_color = client.get_string('/desktop/sugar/user/color') + + jobject = datastore.create() + jobject.metadata['title'] = title + jobject.metadata['title_set_by_user'] = '0' + jobject.metadata['activity'] = self.get_bundle_id() + jobject.metadata['activity_id'] = self.get_id() + jobject.metadata['keep'] = '0' + jobject.metadata['preview'] = '' + jobject.metadata['share-scope'] = SCOPE_PRIVATE + jobject.metadata['icon-color'] = icon_color + jobject.file_path = '' + + # FIXME: We should be able to get an ID synchronously from the DS, + # then call async the actual create. + # http://bugs.sugarlabs.org/ticket/2169 + datastore.write(jobject) + + return jobject def _set_up_sharing(self, mesh_instance, share_scope): # handle activity share/join |