Cleanup browser model service on destroy.

Remove the activity service even if the owner is gone.
This commit is contained in:
Marco Pesenti Gritti
2006-09-12 13:21:18 +02:00
parent d65e8b88e7
commit 53f7cc1f34
4 changed files with 17 additions and 9 deletions
+4 -3
View File
@@ -536,6 +536,9 @@ class PresenceService(object):
if not service:
return False
self._dbus_helper.ServiceDisappeared(service.object_path())
self._handle_remove_activity_service(service)
# Decompose service name if we can
(actid, buddy_name) = Service.decompose_service_name(full_name)
@@ -545,10 +548,8 @@ class PresenceService(object):
except KeyError:
pass
else:
buddy.remove_service(service)
self._dbus_helper.ServiceDisappeared(service.object_path())
self._handle_remove_activity_service(service)
if not buddy.is_valid():
buddy.remove_service(service)
self._dbus_helper.BuddyDisappeared(buddy.object_path())
del self._buddies[buddy_name]
key = (service.get_full_name(), service.get_type())
+1 -2
View File
@@ -68,8 +68,7 @@ class MeshGroup(goocanvas.Group):
self._activities[item.get_id()] = item
def _activity_disappeared_cb(self, activity):
print 'remove'
def _activity_disappeared_cb(self, pservice, activity):
if self._activities.has_key(activity.get_id()):
self.remove_child(self._activities[activity.get_id()])
del self._activities[activity.get_id()]