match urls with open, names with quickmark-load

This commit is contained in:
Claude 2014-10-19 22:25:21 +02:00
parent 572a9857ec
commit ecbe5c071d
4 changed files with 22 additions and 11 deletions

View File

@ -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.

View File

@ -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:

View File

@ -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.

View File

@ -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):