Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sugar/presence/activity.py54
1 files changed, 29 insertions, 25 deletions
diff --git a/sugar/presence/activity.py b/sugar/presence/activity.py
index f290368..31638ac 100644
--- a/sugar/presence/activity.py
+++ b/sugar/presence/activity.py
@@ -42,6 +42,14 @@ class Activity(gobject.GObject):
([gobject.TYPE_PYOBJECT]))
}
+ __gproperties__ = {
+ 'id' : (str, None, None, None, gobject.PARAM_READABLE),
+ 'name' : (str, None, None, None, gobject.PARAM_READABLE),
+ 'color' : (str, None, None, None, gobject.PARAM_READABLE),
+ 'type' : (str, None, None, None, gobject.PARAM_READABLE),
+ 'joined' : (bool, None, None, False, gobject.PARAM_READABLE)
+ }
+
_PRESENCE_SERVICE = "org.laptop.Sugar.Presence"
_ACTIVITY_DBUS_INTERFACE = "org.laptop.Sugar.Presence.Activity"
@@ -67,6 +75,27 @@ class Activity(gobject.GObject):
"""Get our dbus object path"""
return self._object_path
+ def do_get_property(self, pspec):
+ """Retrieve a particular property from our property dictionary"""
+ if pspec.name == "id":
+ if not self._id:
+ self._id = self._activity.GetId()
+ return self._id
+ elif pspec.name == "name":
+ if not self._name:
+ self._name = self._activity.GetName()
+ return self._name
+ elif pspec.name == "color":
+ if not self._color:
+ self._color = self._activity.GetColor()
+ return self._color
+ elif pspec.name == "type":
+ if not self._type:
+ self._type = self._activity.GetType()
+ return self._type
+ elif pspec.name == "joined":
+ return self._joined
+
def _emit_buddy_joined_signal(self, object_path):
"""Generate buddy-joined GObject signal with presence Buddy object"""
self.emit('buddy-joined', self._ps_new_object(object_path))
@@ -97,31 +126,6 @@ class Activity(gobject.GObject):
def _new_channel_cb(self, object_path):
gobject.idle_add(self._emit_new_channel_signal, object_path)
- def get_id(self):
- """Retrieve the unique identifier for this activity instance"""
- # Cache activity ID, which should never change anyway
- if not self._id:
- self._id = self._activity.GetId()
- return self._id
-
- def get_color(self):
- """Retrieve the activity icon colour for this activity instance"""
- if not self._color:
- self._color = self._activity.GetColor()
- return self._color
-
- def get_name(self):
- """Retrieve the activity name for this activity instance"""
- if not self._name:
- self._name = self._activity.GetName()
- return self._name
-
- def get_type(self):
- """Retrieve the activity/bundle type for this activity instance"""
- if not self._type:
- self._type = self._activity.GetType()
- return self._type
-
def get_joined_buddies(self):
"""Retrieve the set of Buddy objects attached to this activity