From bfab8e3614a54f7de52c5f243aa58985e98fe832 Mon Sep 17 00:00:00 2001 From: Yann Leboulanger Date: Sun, 7 Feb 2010 20:12:58 +0100 Subject: [PATCH] [David Flatz] show transports even if show transports is false when they have unread events. Fixes #5591 --- src/roster_window.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/roster_window.py b/src/roster_window.py index fe8f3b318..049bdb9e5 100644 --- a/src/roster_window.py +++ b/src/roster_window.py @@ -1509,6 +1509,15 @@ class RosterWindow: if type_ == 'group': group = jid if group == _('Transports'): + if self.regroup: + accounts = gajim.contacts.get_accounts() + else: + accounts = [account] + for _acc in accounts: + for contact in gajim.contacts.iter_contacts(_acc): + if group in contact.get_shown_groups() and \ + self.contact_has_pending_roster_events(contact, _acc): + return True return gajim.config.get('show_transports_group') and \ (gajim.account_is_connected(account) or \ gajim.config.get('showoffline')) @@ -1555,9 +1564,12 @@ class RosterWindow: jid) return self.contact_is_visible(contact, account) if type_ == 'agent': - return gajim.config.get('show_transports_group') and \ + contact = gajim.contacts.get_contact_with_highest_priority(account, + jid) + return self.contact_has_pending_roster_events(contact, account) or \ + (gajim.config.get('show_transports_group') and \ (gajim.account_is_connected(account) or \ - gajim.config.get('showoffline')) + gajim.config.get('showoffline'))) return True def _compareIters(self, model, iter1, iter2, data=None):