changeset 1397:96dd0ae1a850

quick_frontend (contact_list): rename QuickContactList.remove to QuickContactList.removeContact + remove the contact from _roster attribute (and not only from _cache)
author souliane <souliane@mailoo.org>
date Wed, 01 Apr 2015 22:07:28 +0200
parents 069ad98b360d
children f8ecce11a0bc
files frontends/src/quick_frontend/quick_app.py frontends/src/quick_frontend/quick_contact_list.py
diffstat 2 files changed, 6 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/frontends/src/quick_frontend/quick_app.py	Mon Mar 30 10:26:26 2015 +0200
+++ b/frontends/src/quick_frontend/quick_app.py	Wed Apr 01 22:07:28 2015 +0200
@@ -543,7 +543,7 @@
         chat_widget = self.widgets.getWidget(quick_chat.QuickChat, room_jid, profile)
         if chat_widget:
             self.widgets.deleteWidget(chat_widget)
-        self.contact_lists[profile].remove(room_jid)
+        self.contact_lists[profile].removeContact(room_jid)
 
     def roomUserJoinedHandler(self, room_jid_s, user_nick, user_data, profile):
         """Called when an user joined a MUC room"""
@@ -643,7 +643,7 @@
 
     def contactDeletedHandler(self, jid_s, profile):
         target = jid.JID(jid_s)
-        self.contact_lists[profile].remove(target)
+        self.contact_lists[profile].removeContact(target, in_roster=True)
 
     def entityDataUpdatedHandler(self, entity_s, key, value, profile):
         entity = jid.JID(entity_s)
--- a/frontends/src/quick_frontend/quick_contact_list.py	Mon Mar 30 10:26:26 2015 +0200
+++ b/frontends/src/quick_frontend/quick_contact_list.py	Wed Apr 01 22:07:28 2015 +0200
@@ -352,16 +352,19 @@
         """
         return entity in self.getGroupData(group, "jids")
 
-    def remove(self, entity):
+    def removeContact(self, entity, in_roster=False):
         """remove a contact from the list
 
         @param entity(jid.JID): jid of the entity to remove (bare jid is used)
+        @param in_roster (bool): True if contact is from roster
         """
         entity_bare = entity.bare
         try:
             groups = self._cache[entity_bare].get(C.CONTACT_GROUPS, set())
         except KeyError:
             log.warning(_("Trying to delete an unknow entity [{}]").format(entity))
+        if in_roster:
+            self._roster.remove(entity_bare)
         del self._cache[entity_bare]
         for group in groups:
             self._groups[group]['jids'].remove(entity_bare)