[OlegOAndreev] add Ctrl+K support to enable roster filter. Fixes #7302

This commit is contained in:
Yann Leboulanger 2013-02-16 12:27:28 +01:00
parent 96818f60b3
commit 69cec5257e
1 changed files with 14 additions and 1 deletions

View File

@ -3567,6 +3567,8 @@ class RosterWindow:
self.send_pep(account, pep_dict)
dialogs.ChangeStatusMessageDialog(on_response, status)
return True
elif keyval == gtk.keysyms.k: # CTRL + k
self.enable_rfilter('')
def on_roster_treeview_button_press_event(self, widget, event):
# hide tooltip, no matter the button is pressed
@ -4435,7 +4437,6 @@ class RosterWindow:
self.disable_rfilter()
def on_rfilter_entry_key_press_event(self, widget, event):
print 'rfilter', event.keyval
if event.keyval == gtk.keysyms.Escape:
self.disable_rfilter()
elif event.keyval == gtk.keysyms.Return:
@ -4462,6 +4463,10 @@ class RosterWindow:
self.tree.expand_all()
self.rfilter_entry.set_position(-1)
# If roster is hidden, let's temporarily show it. This can happen if user
# enables rfilter via keyboard shortcut.
self.show_roster_vbox(True)
def disable_rfilter(self):
self.rfilter_enabled = False
self.rfilter_entry.set_text('')
@ -4471,6 +4476,9 @@ class RosterWindow:
self.tree.grab_focus()
self._readjust_expand_collapse_state()
# If roster was hidden before enable_rfilter was called, hide it back.
self.on_show_roster_menuitem_toggled(self.xml.get_object('show_roster_menuitem'))
def on_roster_hpaned_notify(self, pane, gparamspec):
"""
Keep changing the width of the roster
@ -6688,6 +6696,11 @@ class RosterWindow:
# Setting CTRL+S to be the shortcut to change status message
accel_group = gtk.AccelGroup()
keyval, mod = gtk.accelerator_parse('<Control>s')
accel_group.connect_group(keyval, mod, gtk.ACCEL_VISIBLE,
self.accel_group_func)
# Setting CTRL+k to focus rfilter_entry
keyval, mod = gtk.accelerator_parse('<Control>k')
accel_group.connect_group(keyval, mod, gtk.ACCEL_VISIBLE,
self.accel_group_func)
self.window.add_accel_group(accel_group)