Commit 33a9f143 authored by mathieui's avatar mathieui

Fix contact removal

parent 9b513771
......@@ -69,24 +69,30 @@ class Roster(object):
"""Set the a Contact value for the bare jid key"""
self.contacts[key] = value
def remove(self, jid):
"""Send a removal iq to the server"""
jid = safeJID(jid).bare
if self.__node[jid]:
try:
self.__node[jid].send_presence(ptype='unavailable')
self.__node.remove(jid)
except (IqError, IqTimeout):
import traceback
log.debug('IqError when removing %s:\n%s', jid, traceback.format_exc())
def __delitem__(self, jid):
"""Remove a contact from the roster"""
"""Remove a contact from the roster view"""
jid = safeJID(jid).bare
contact = self[jid]
if not contact:
return
del self.contacts[contact.bare_jid]
for group in list(self.groups.values()):
group.remove(contact)
if not group:
del self.groups[group.name]
del self.contacts[contact.bare_jid]
if jid in self.jids():
try:
self.__node[jid].send_presence(ptype='unavailable')
self.__node.remove(jid)
except (IqError, IqTimeout):
import traceback
log.debug('IqError when removing %s:\n%s', jid, traceback.format_exc())
self.modified()
def __iter__(self):
"""Iterate over the jids of the contacts"""
......
......@@ -2613,8 +2613,8 @@ class RosterInfoTab(Tab):
else:
self.core.information('No roster item to remove')
return
roster.remove(jid)
del roster[jid]
roster.modified()
def command_import(self, arg):
"""
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment