Hi,

this moves DS object creation later so we have access to the sharing
information.

Thanks,

Tomeu
From 9006a7abcdce3861fb7e45ea6c6f8b0af5b34ab0 Mon Sep 17 00:00:00 2001
From: Tomeu Vizoso <[EMAIL PROTECTED]>
Date: Thu, 26 Jun 2008 16:20:27 +0200
Subject: [PATCH] #7054 Set activity initiator's colors in the journal entry

---
 src/sugar/activity/activity.py |   51 ++++++++++++++++++---------------------
 1 files changed, 24 insertions(+), 27 deletions(-)

diff --git a/src/sugar/activity/activity.py b/src/sugar/activity/activity.py
index 43d75ed..fca9f71 100644
--- a/src/sugar/activity/activity.py
+++ b/src/sugar/activity/activity.py
@@ -435,6 +435,7 @@ class Activity(Window, gtk.Container):
         self._deleting = False
         self._max_participants = 0
         self._invites_queue = []
+        self._jobject = None
 
         self._xsmp_client = XSMPClient()
         self._xsmp_client.connect('quit-requested', self.__sm_quit_requested_cb)
@@ -463,33 +464,6 @@ class Activity(Window, gtk.Container):
             if self._jobject.metadata.has_key('share-scope'):
                 share_scope = self._jobject.metadata['share-scope']
 
-        elif create_jobject:
-            logging.debug('Creating a jobject.')
-            self._jobject = datastore.create()
-            title = _('%s Activity') % get_bundle_name()
-            self._jobject.metadata['title'] = title
-            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:
-                icon_color = profile.get_color().to_string()
-
-            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)
-        else:
-            self._jobject = None
-
         # handle activity share/join
         mesh_instance = self._pservice.get_activity(self._activity_id,
                                                     warn_if_none=False)
@@ -520,6 +494,29 @@ class Activity(Window, gtk.Container):
             else:
                 logging.debug("Unknown share scope %r" % share_scope)
 
+        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.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:
+                icon_color = profile.get_color().to_string()
+            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 do_set_property(self, pspec, value):
         if pspec.name == 'active':
             if self._active != value:
-- 
1.5.4.3

_______________________________________________
Sugar mailing list
[email protected]
http://lists.laptop.org/listinfo/sugar

Reply via email to