Philipp Hörist pushed to branch mainwindow at gajim / gajim


Commits:
3213b5c8 by lovetox at 2021-03-06T16:30:30+01:00
Roster: Fix removing contact

- - - - -


3 changed files:

- gajim/common/modules/roster.py
- gajim/gtk/main.py
- gajim/gtk/roster.py


Changes:

=====================================
gajim/common/modules/roster.py
=====================================
@@ -116,7 +116,10 @@ def _process_roster_push(self, _con, _stanza, properties):
         self._log.info('Push received')
 
         item = properties.roster.item
-        self._roster[item.jid] = item
+        if item.subscription == 'remove':
+            self._roster.pop(item.jid)
+        else:
+            self._roster[item.jid] = item
 
         self._store_roster()
 


=====================================
gajim/gtk/main.py
=====================================
@@ -522,18 +522,18 @@ def _block_contact(report=None):
             modal=False).show()
 
     def remove_contact(self, account, jid):
+        client = app.get_client(account)
+
         def _remove_contact():
             self.remove_chat(account, jid)
-            roster = self._account_pages[account].get_roster()
-            roster.remove_contact(jid)
+            client.get_module('Roster').delete_item(jid)
 
-        client = app.get_client(account)
         contact = client.get_module('Contacts').get_contact(jid)
         sec_text = _('You are about to remove %(name)s (%(jid)s) from '
                      'your contact list.\n') % {
                          'name': contact.name,
                          'jid': jid}
-        # TODO: ConfirmationCheckDialog for subscription decision?
+
         ConfirmationDialog(
             _('Remove Contact'),
             _('Remove contact from contact list'),


=====================================
gajim/gtk/roster.py
=====================================
@@ -26,10 +26,7 @@
 log = logging.getLogger('gajim.gui.roster')
 
 
-HANDLED_EVENTS = [
-    'presence-received',
-]
-
+HANDLED_EVENTS = []
 
 DEFAULT_GROUP = _('Contacts')
 
@@ -354,7 +351,11 @@ def _on_roster_received(self, _event):
     @event_filter(['account'])
     def _on_roster_push(self, event):
         contact = self._get_contact(event.item.jid)
-        self._add_or_update_contact(contact)
+
+        if event.item.subscription == 'remove':
+            self._remove_contact(contact)
+        else:
+            self._add_or_update_contact(contact)
 
     def _get_current_groups(self, jid):
         groups = set()
@@ -560,18 +561,10 @@ def clear(self):
         self._group_refs = {}
         self._store.clear()
 
-    def _on_presence_received(self, _event):
-        pass
-
     def process_event(self, event):
         if event.name not in HANDLED_EVENTS:
             return
 
-        if event.name == 'presence-received':
-            self._on_presence_received(event)
-        else:
-            log.warning('Unhandled Event: %s', event.name)
-
     def _on_destroy(self, _roster):
         self._remove_actions()
         self._contact_refs = {}



View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/commit/3213b5c8ae2e5d1368e4af5d77c7b3b5002ab0c1

-- 
View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/commit/3213b5c8ae2e5d1368e4af5d77c7b3b5002ab0c1
You're receiving this email because of your account on dev.gajim.org.


_______________________________________________
Commits mailing list
Commits@gajim.org
https://lists.gajim.org/cgi-bin/listinfo/commits

Reply via email to