Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon McVittie <simon.mcvittie@collabora.co.uk>2007-06-11 16:53:10 (GMT)
committer Simon McVittie <simon.mcvittie@collabora.co.uk>2007-06-11 16:53:10 (GMT)
commit927ccef5ad6537afb38aff9ad79b10745a2b4628 (patch)
tree4ad66fe128cd17981d50851e1ad8a190e79169c1
parent7c4201fc25846bd2405fc5f9098b16602fa7adfe (diff)
presenceservice: Only bind to D-Bus signals if the relevant interface is supported
-rw-r--r--src/presenceservice.py36
1 files changed, 19 insertions, 17 deletions
diff --git a/src/presenceservice.py b/src/presenceservice.py
index c8f4cb2..bf24b5e 100644
--- a/src/presenceservice.py
+++ b/src/presenceservice.py
@@ -163,20 +163,21 @@ class PresenceService(ExportedGObject):
self._conn_matches[conn] = []
- def activity_properties_changed(room, properties):
- self._activity_properties_changed(tp, room, properties)
- m = conn[CONN_INTERFACE_ACTIVITY_PROPERTIES].connect_to_signal(
- 'ActivityPropertiesChanged',
- activity_properties_changed)
- self._conn_matches[conn].append(m)
-
- def buddy_activities_changed(contact, activities):
- self._buddy_activities_changed(tp, contact, activities)
- m = conn[CONN_INTERFACE_BUDDY_INFO].connect_to_signal(
- 'ActivitiesChanged', buddy_activities_changed)
- self._conn_matches[conn].append(m)
+ if CONN_INTERFACE_ACTIVITY_PROPERTIES in conn:
+ def activity_properties_changed(room, properties):
+ self._activity_properties_changed(tp, room, properties)
+ m = conn[CONN_INTERFACE_ACTIVITY_PROPERTIES].connect_to_signal(
+ 'ActivityPropertiesChanged',
+ activity_properties_changed)
+ self._conn_matches[conn].append(m)
if CONN_INTERFACE_BUDDY_INFO in conn:
+ def buddy_activities_changed(contact, activities):
+ self._buddy_activities_changed(tp, contact, activities)
+ m = conn[CONN_INTERFACE_BUDDY_INFO].connect_to_signal(
+ 'ActivitiesChanged', buddy_activities_changed)
+ self._conn_matches[conn].append(m)
+
def buddy_properties_changed(contact, properties):
self._buddy_properties_changed(tp, contact, properties)
m = conn[CONN_INTERFACE_BUDDY_INFO].connect_to_signal(
@@ -195,11 +196,12 @@ class PresenceService(ExportedGObject):
'CurrentActivityChanged', buddy_curact_changed)
self._conn_matches[conn].append(m)
- def avatar_updated(contact, avatar_token):
- self._avatar_updated(tp, contact, avatar_token)
- m = conn[CONN_INTERFACE_AVATARS].connect_to_signal('AvatarUpdated',
- avatar_updated)
- self._conn_matches[conn].append(m)
+ if CONN_INTERFACE_AVATARS in conn:
+ def avatar_updated(contact, avatar_token):
+ self._avatar_updated(tp, contact, avatar_token)
+ m = conn[CONN_INTERFACE_AVATARS].connect_to_signal('AvatarUpdated',
+ avatar_updated)
+ self._conn_matches[conn].append(m)
if CONN_INTERFACE_ALIASING in conn:
def aliases_changed(aliases):