From ecbe5c071d97cc8148398e58520a9f7583754294 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 19 Oct 2014 22:25:21 +0200 Subject: [PATCH] match urls with open, names with quickmark-load --- qutebrowser/browser/commands.py | 5 +++-- qutebrowser/models/completion.py | 16 +++++++++++----- qutebrowser/utils/completer.py | 9 ++++++--- qutebrowser/utils/usertypes.py | 3 ++- 4 files changed, 22 insertions(+), 11 deletions(-) diff --git a/qutebrowser/browser/commands.py b/qutebrowser/browser/commands.py index 5a3be8ed0..d69508a93 100644 --- a/qutebrowser/browser/commands.py +++ b/qutebrowser/browser/commands.py @@ -274,7 +274,8 @@ class CommandDispatcher: tabbar.setSelectionBehaviorOnRemove(old_selection_behavior) @cmdutils.register(instance='command-dispatcher', name='open', - split=False, scope='window') + split=False, scope='window', + completion=[usertypes.Completion.quickmark_by_url]) def openurl(self, url, bg=False, tab=False, window=False, count: {'special': 'count'}=None): """Open a URL in the current/[count]th tab. @@ -819,7 +820,7 @@ class CommandDispatcher: quickmark_manager.prompt_save(self._win_id, self._current_url()) @cmdutils.register(instance='command-dispatcher', scope='window', - completion=[usertypes.Completion.quickmark]) + completion=[usertypes.Completion.quickmark_by_name]) def quickmark_load(self, name, tab=False, bg=False, window=False): """Load a quickmark. diff --git a/qutebrowser/models/completion.py b/qutebrowser/models/completion.py index a5974ec04..eaf8e06a1 100644 --- a/qutebrowser/models/completion.py +++ b/qutebrowser/models/completion.py @@ -201,15 +201,21 @@ class QuickmarkCompletionModel(basecompletion.BaseCompletionModel): # pylint: disable=abstract-method - def __init__(self, parent=None): + def __init__(self, parent=None, match_field='url'): super().__init__(parent) - self._on_quickmarks_changed(self) + self._on_quickmarks_changed(self, match_field) - def _on_quickmarks_changed(self, parent=None): + def _on_quickmarks_changed(self, parent=None, match_field='url'): qmlist = [] - for qm_name, qm_url in objreg.get('quickmark-manager').marks.items(): - qmlist.append((qm_url, qm_name)) + + if match_field == 'url': + for qm_name, qm_url in objreg.get('quickmark-manager').marks.items(): + qmlist.append((qm_url, qm_name)) + + if match_field == 'name': + for qm_name, qm_url in objreg.get('quickmark-manager').marks.items(): + qmlist.append((qm_name, qm_url)) cat = self.new_category("Quickmarks") for (name, desc) in qmlist: diff --git a/qutebrowser/utils/completer.py b/qutebrowser/utils/completer.py index 5085e62b1..e19d28849 100644 --- a/qutebrowser/utils/completer.py +++ b/qutebrowser/utils/completer.py @@ -99,11 +99,14 @@ class Completer(QObject): def init_quickmark_completions(self): """Initialize quickmark completion models.""" try: - self._models[usertypes.Completion.quickmark].deleteLater() + self._models[usertypes.Completion.quickmark_by_url].deleteLater() + self._models[usertypes.Completion.quickmark_by_name].deleteLater() except KeyError: pass - self._models[usertypes.Completion.quickmark] = CFM( - models.QuickmarkCompletionModel(self), self) + self._models[usertypes.Completion.quickmark_by_url] = CFM( + models.QuickmarkCompletionModel(self, 'url'), self) + self._models[usertypes.Completion.quickmark_by_name] = CFM( + models.QuickmarkCompletionModel(self, 'name'), self) def _get_new_completion(self, parts, cursor_part): """Get a new completion model. diff --git a/qutebrowser/utils/usertypes.py b/qutebrowser/utils/usertypes.py index 7bcb0ef7d..c21b7febf 100644 --- a/qutebrowser/utils/usertypes.py +++ b/qutebrowser/utils/usertypes.py @@ -230,7 +230,8 @@ KeyMode = enum('KeyMode', ['normal', 'hint', 'command', 'yesno', 'prompt', # Available command completions Completion = enum('Completion', ['command', 'section', 'option', 'value', - 'helptopic', 'quickmark']) + 'helptopic', 'quickmark_by_url', + 'quickmark_by_name']) class Question(QObject):