From da03afcfb06615bbebd1ead097710bf343dd432c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Klinkovsk=C3=BD?= Date: Wed, 23 Dec 2015 16:36:58 +0100 Subject: [PATCH] Save the filter string in HintManager This allows restoring the filter during rapid hinting in numeric mode (addresses #576) --- qutebrowser/browser/hints.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/qutebrowser/browser/hints.py b/qutebrowser/browser/hints.py index 2ab280f37ad..97f7c9e1df1 100644 --- a/qutebrowser/browser/hints.py +++ b/qutebrowser/browser/hints.py @@ -111,6 +111,7 @@ class HintManager(QObject): _context: The HintContext for the current invocation. _win_id: The window ID this HintManager is associated with. _tab_id: The tab ID this HintManager is associated with. + _filterstr: Used to save the filter string for restoring in rapid mode. Signals: mouse_event: Mouse event to be posted in the web view. @@ -834,8 +835,16 @@ def filter_hints(self, filterstr): """Filter displayed hints according to a text. Args: - filterstr: The string to filter with, or None to show all. + filterstr: The string to filter with, or None to use the filter from + previous call (saved in `self._filterstr`). If `filterstr` + is an empty string or if both `filterstr` and + `self._filterstr` are None, all hints are shown. """ + if filterstr is None: + filterstr = self._filterstr + else: + self._filterstr = filterstr + for elems in self._context.elems.values(): try: if (filterstr is None or @@ -920,7 +929,7 @@ def fire(self, keystr, force=False): modeman.maybe_leave(self._win_id, usertypes.KeyMode.hint, 'followed') else: - # Show all hints again + # Reset filtering self.filter_hints(None) # Undo keystring highlighting for (string, elems) in self._context.elems.items():