changeset 455ef83aece5 in /home/hg/repos/gajim details:http://hg.gajim.org/gajim?cmd=changeset;node=455ef83aece5 description: improve search filter in roster: hide groups that have no contacts, make it search for transports and groupchats. Fixes #7060
diffstat: src/roster_window.py | 20 +++++++++++++++++--- 1 files changed, 17 insertions(+), 3 deletions(-) diffs (50 lines): diff -r 74445e12a604 -r 455ef83aece5 src/roster_window.py --- a/src/roster_window.py Sat Dec 03 13:33:03 2011 +0100 +++ b/src/roster_window.py Tue Dec 06 19:11:34 2011 +0100 @@ -1515,6 +1515,8 @@ return False def contact_is_visible(self, contact, account): + if self.rfilter_enabled: + return self.rfilter_string in contact.get_shown_name().lower() if self.contact_has_pending_roster_events(contact, account): return True @@ -1556,9 +1558,17 @@ 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 + if group in contact.get_shown_groups(): + if self.rfilter_enabled: + if self.rfilter_string in \ + contact.get_shown_name().lower(): + return True + elif self.contact_has_pending_roster_events(contact, + _acc): + return True + if self.rfilter_enabled: + # No transport has been found + return False return gajim.config.get('show_transports_group') and \ (gajim.account_is_connected(account) or \ gajim.config.get('showoffline')) @@ -1610,12 +1620,16 @@ account, jid) return self.contact_is_visible(contact, account) if type_ == 'agent': + if self.rfilter_enabled: + return self.rfilter_string in model[titer][C_NAME].lower() 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'))) + if type_ == 'groupchat' and self.rfilter_enabled: + return self.rfilter_string in model[titer][C_NAME].lower() return True def _compareIters(self, model, iter1, iter2, data=None): _______________________________________________ Commits mailing list Commits@gajim.org http://lists.gajim.org/cgi-bin/listinfo/commits