[sugar] [PATCH] sugar-toolbox: add get_shared_activity method

Andrés Ambrois andresambrois
Fri Jul 25 20:18:35 EDT 2008


  I've noticed that in order to use collaboration in an activity you need to 
access the _shared_activity member of your activity class to check if the 
activity is shared, and then there's further obscure stuff like: 

self.text_chan = self._shared_activity.telepathy_text_chan
self.tubes_chan[telepathy.CHANNEL_TYPE_TUBES].connect_to_signal(
                'NewTube', self._new_tube_cb)

  The patch adds a get_shared_activity method which just returns the 
_shared_activity member so documentation about what _shared_activity really 
is shows up on the API docs, instead of having to go through half 
sugar-toolbox's code to find out. 

  There are plenty more members of classes being accesed directly (like 
tubes_chan[telepathy.CHANNEL_TYPE_TUBES] above) which makes it difficult for 
novice programmers like me to find out what the heck they're doing when they 
write an activity. 

  The pylint warning: 
	W:195:ActivityToolbar.__update_title_cb: Access to a protected member 
_shared_activity of a client class
is also fixed. 

  If I've just started learning python last week, so if I'm speaking pure 
nonsense, I apologize :). 

 -Andr?s
---
diff --git a/src/sugar/activity/activity.py b/src/sugar/activity/activity.py
index 3b5d529..70f21c4 100644
--- a/src/sugar/activity/activity.py
+++ b/src/sugar/activity/activity.py
@@ -192,7 +192,7 @@ class ActivityToolbar(gtk.Toolbar):
         self._activity.metadata['title_set_by_user'] = '1'
         self._activity.save()

-        shared_activity = self._activity._shared_activity
+        shared_activity = self._activity.get_shared_activity()
         if shared_activity:
             shared_activity.props.name = title

@@ -790,6 +790,13 @@ class Activity(Window, gtk.Container):
         self.emit('joined')
         self.__privacy_changed_cb(self._shared_activity, None)

+    def get_shared_activity(self):
+        """Returns an instance of the shared Activity or None
+
+        The shared activity is of type sugar.presence.activity.Activity
+        """
+        return self._shared_activity
+
     def get_shared(self):
         """Returns TRUE if the activity is shared on the mesh."""
         if not self._shared_activity:
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part.
Url : http://lists.laptop.org/pipermail/sugar/attachments/20080725/1e46ad8b/attachment-0001.pgp 



More information about the Sugar-devel mailing list