From 27e582d9633dc026d46d8e85b52b7c7b6f2475d5 Mon Sep 17 00:00:00 2001 From: Denis Fomin Date: Fri, 26 Apr 2013 15:50:41 +0400 Subject: [PATCH] ClientsIconsPlugin. Fix icon if contact in several groups --- clients_icons/clients_icons.py | 21 ++++++++++++--------- clients_icons/manifest.ini | 2 +- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/clients_icons/clients_icons.py b/clients_icons/clients_icons.py index 5df6a63..4b7d246 100644 --- a/clients_icons/clients_icons.py +++ b/clients_icons/clients_icons.py @@ -371,12 +371,13 @@ class ClientsIconsPlugin(GajimPlugin): roster.model) if not child_iters: return - if roster.model[child_iters[0]][self.renderer_num] is None: - caps = contact.client_caps._node - if not caps: - caps = self.check_jid(jid) - self.set_icon(roster.model, child_iters[0], self.renderer_num, - caps) + for iter_ in child_iters: + if roster.model[iter_][self.renderer_num] is None: + caps = contact.client_caps._node + if not caps: + caps = self.check_jid(jid) + self.set_icon(roster.model, iter_, self.renderer_num, + caps) @log_calls('ClientsIconsPlugin') def connect_with_groupchat_control(self, chat_control): @@ -510,8 +511,9 @@ class ClientsIconsPlugin(GajimPlugin): # zeroconf return - iter_ = roster._get_contact_iter(iq_obj.jid, iq_obj.conn.name, contact, - roster.model)[0] + iters = roster._get_contact_iter(iq_obj.jid, iq_obj.conn.name, contact, + roster.model) + iter_ = iters[0] if contact.show == 'error': self.set_icon(roster.model, iter_, self.renderer_num, None) @@ -539,7 +541,8 @@ class ClientsIconsPlugin(GajimPlugin): if caps_from_jid: caps = caps_from_jid - self.set_icon(roster.model, iter_, self.renderer_num, caps) + for iter_ in iters: + self.set_icon(roster.model, iter_, self.renderer_num, caps) def gc_presence_received(self, iq_obj): if not self.config['show_in_groupchats']: diff --git a/clients_icons/manifest.ini b/clients_icons/manifest.ini index dc59e99..83fcba9 100644 --- a/clients_icons/manifest.ini +++ b/clients_icons/manifest.ini @@ -1,7 +1,7 @@ [info] name: Clients icons short_name: clients_icons -version: 4.1 +version: 4.2 description: Shows the client icons in the roster and in groupchats. For icons in tooltip support, you need to install Gajim r14117 or above.