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

Reply via email to