Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--services/presence/Buddy.py6
-rw-r--r--sugar/presence/Buddy.py9
2 files changed, 15 insertions, 0 deletions
diff --git a/services/presence/Buddy.py b/services/presence/Buddy.py
index bf369f7..618902e 100644
--- a/services/presence/Buddy.py
+++ b/services/presence/Buddy.py
@@ -35,6 +35,11 @@ class BuddyDBusHelper(dbus.service.Object):
@dbus.service.signal(BUDDY_DBUS_INTERFACE,
signature="")
+ def Disappeared(self):
+ pass
+
+ @dbus.service.signal(BUDDY_DBUS_INTERFACE,
+ signature="")
def IconChanged(self):
pass
@@ -268,6 +273,7 @@ class Buddy(object):
if service.get_type() == PRESENCE_SERVICE_TYPE:
self._valid = False
+ self._dbus_helper.Disappeared()
def remove_activity(self, activity):
actid = activity.get_id()
diff --git a/sugar/presence/Buddy.py b/sugar/presence/Buddy.py
index ee7bfde..a0d3fd1 100644
--- a/sugar/presence/Buddy.py
+++ b/sugar/presence/Buddy.py
@@ -7,6 +7,8 @@ class Buddy(gobject.GObject):
__gsignals__ = {
'icon-changed': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
([])),
+ 'disappeared': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ ([])),
'service-appeared': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
([gobject.TYPE_PYOBJECT])),
'service-disappeared': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
@@ -33,6 +35,7 @@ class Buddy(gobject.GObject):
self._buddy.connect_to_signal('IconChanged', self._icon_changed_cb)
self._buddy.connect_to_signal('ServiceAppeared', self._service_appeared_cb)
self._buddy.connect_to_signal('ServiceDisappeared', self._service_disappeared_cb)
+ self._buddy.connect_to_signal('Disappeared', self._disappeared_cb)
self._buddy.connect_to_signal('JoinedActivity', self._joined_activity_cb)
self._buddy.connect_to_signal('LeftActivity', self._left_activity_cb)
self._buddy.connect_to_signal('PropertyChanged', self._property_changed_cb)
@@ -54,6 +57,12 @@ class Buddy(gobject.GObject):
def _icon_changed_cb(self):
gobject.idle_add(self._emit_icon_changed_signal)
+ def _emit_disappeared_signal(self):
+ self.emit('disappeared')
+
+ def _disappeared_cb(self):
+ gobject.idle_add(self._emit_disappeared_signal)
+
def _emit_service_appeared_signal(self, object_path):
self.emit('service-appeared', self._ps_new_object(object_path))
return False