=== modified file 'telepathy_butterfly/channel.py' --- telepathy_butterfly/channel.py 2007-11-13 17:56:59 +0000 +++ telepathy_butterfly/channel.py 2007-12-23 17:57:32 +0000 @@ -124,6 +124,7 @@ class ButterflySubscribeListChannel(ButterflyListChannel): def __init__(self, connection, handle): + self.__pending_remove = [] ButterflyListChannel.__init__(self, connection, handle) self.GroupFlagsChanged(0, 0) # no contact Management for now @@ -136,6 +137,22 @@ self.MembersChanged('', added, (), (), (), 0, telepathy.CHANNEL_GROUP_CHANGE_REASON_NONE) + def _release_pendings(self): + self.RemoveMembers(self.__pending_remove, None) + self.__pending_remove = [] + + def RemoveMembers(self, contacts, message): + ab = self._conn._pymsn_client.address_book + # TODO: use proper pending system + for h in contacts: + handle = self._conn._handle_manager.\ + handle_for_handle_id(telepathy.HANDLE_TYPE_CONTACT, h) + contact = self._conn._contact_for_handle(handle) + ab.delete_contact(contact) + + self.MembersChanged(message, (), contacts, (), (), 0, + telepathy.CHANNEL_GROUP_CHANGE_REASON_NONE) + class ButterflyPublishListChannel(ButterflyListChannel): def __init__(self, connection, handle):