diff options
author | Florian Bruhin <git@the-compiler.org> | 2018-05-03 13:58:59 +0200 |
---|---|---|
committer | Florian Bruhin <git@the-compiler.org> | 2018-05-03 14:04:56 +0200 |
commit | 6eb8284fe05f9d97573d18ac205d4d83ff375cd0 (patch) | |
tree | 71c9152006b89bc72d110a2417507f269987f831 | |
parent | 49bdcd5a972f28e0f45e09b63a1102d44cbabe10 (diff) | |
download | qutebrowser-6eb8284fe05f9d97573d18ac205d4d83ff375cd0.tar.gz qutebrowser-6eb8284fe05f9d97573d18ac205d4d83ff375cd0.zip |
Refactor handling search in command.py
-rw-r--r-- | qutebrowser/mainwindow/statusbar/command.py | 33 |
1 files changed, 21 insertions, 12 deletions
diff --git a/qutebrowser/mainwindow/statusbar/command.py b/qutebrowser/mainwindow/statusbar/command.py index 61b9fb43a..c0e3e095d 100644 --- a/qutebrowser/mainwindow/statusbar/command.py +++ b/qutebrowser/mainwindow/statusbar/command.py @@ -71,13 +71,25 @@ class Command(misc.MinimalLineEditMixin, misc.CommandLineEdit): self.textChanged.connect(self.updateGeometry) self.textChanged.connect(self._incremental_search) - dispatcher = objreg.get('command-dispatcher', - scope='window', window=self._win_id) - search_fn = dispatcher.search - self.search_prefixes = { - '/': search_fn, - '?': functools.partial(search_fn, reverse=True) + self._command_dispatcher = objreg.get( + 'command-dispatcher', scope='window', window=self._win_id) + + def _handle_search(self): + """Check if the currently entered text is a search, and if so, run it. + + Return: + True if a search was executed, False otherwise. + """ + search_prefixes = { + '/': self._command_dispatcher.search, + '?': functools.partial( + self._command_dispatcher.search, reverse=True) } + if self.prefix() in search_prefixes: + search_fn = search_prefixes[self.prefix()] + search_fn(self.text()[1:]) + return True + return False def prefix(self): """Get the currently entered command prefix.""" @@ -178,10 +190,8 @@ class Command(misc.MinimalLineEditMixin, misc.CommandLineEdit): modeman.leave(self._win_id, usertypes.KeyMode.command, 'cmd accept') - prefix = text[0] - if prefix in self.search_prefixes: - self.search_prefixes[prefix](text[1:]) - else: + was_search = self._handle_search() + if not was_search: self.got_cmd[str].emit(text[1:]) @cmdutils.register(instance='status-command', scope='window') @@ -268,5 +278,4 @@ class Command(misc.MinimalLineEditMixin, misc.CommandLineEdit): if not config.val.search.incremental: return - if self.prefix() in self.search_prefixes: - self.search_prefixes[self.prefix()](text[1:]) + self._handle_search() |