changeset 9cd45772dafb in /home/hg/repos/gajim
details:http://hg.gajim.org/gajim?cmd=changeset;node=9cd45772dafb
description: add basic roster filtering
diffstat:
src/roster_window.py | 23 +++++++++++++++++++----
1 files changed, 19 insertions(+), 4 deletions(-)
diffs (51 lines):
diff -r 62cfc918be16 -r 9cd45772dafb src/roster_window.py
--- a/src/roster_window.py Mon Apr 18 10:29:32 2011 +0200
+++ b/src/roster_window.py Mon Apr 18 11:19:44 2011 +0200
@@ -1589,6 +1589,8 @@
grp = delimiter.join(grp.split(delimiter)[:-1])
return False
if type_ == 'contact':
+ if self.search_enabled:
+ return self.search_string in model[titer][C_NAME].lower()
if gajim.config.get('showoffline'):
return True
bb_jid = None
@@ -4165,14 +4167,22 @@
if self.hpaned.get_child2() is not None:
self.show_roster_vbox(widget.get_active())
- def on_roster_filter_entry_insert_changed(self, widget):
+ def on_roster_filter_entry_changed(self, widget):
""" When we update the content of the filter """
- pass
+ self.search_string = widget.get_text().lower()
+ if self.search_string == '':
+ self.search_enabled = False
+ else:
+ self.search_enabled = True
+ self.refilter_shown_roster_items()
def on_show_roster_filter_menuitem_toggled(self, widget):
""" Show the roster filter entry """
-
self.xml.get_object('roster_filter_entry').set_visible(widget.get_active())
-
self.xml.get_object('roster_filter_entry').set_editable(widget.get_active())
+ self.search_enabled = widget.get_active()
+
self.xml.get_object('roster_filter_entry').set_visible(self.search_enabled)
+
self.xml.get_object('roster_filter_entry').set_editable(self.search_enabled)
+ if self.search_enabled:
+ self.xml.get_object('roster_filter_entry').grab_focus()
def on_roster_hpaned_notify(self, pane, gparamspec):
"""
@@ -6354,6 +6364,11 @@
new_chat_menuitem.add_accelerator('activate', accel_group,
gtk.keysyms.n, gtk.gdk.CONTROL_MASK, gtk.ACCEL_VISIBLE)
+ # Setting the search stuff
+ self.xml.get_object('roster_filter_entry').set_visible(False)
+ self.search_string = ''
+ self.search_enabled = False
+
gajim.ged.register_event_handler('presence-received', ged.GUI1,
self._nec_presence_received)
# presence has to be fully handled so that contact is added to occupant
_______________________________________________
Commits mailing list
[email protected]
http://lists.gajim.org/cgi-bin/listinfo/commits