This commit is contained in:
Florian Bruhin 2015-08-22 22:59:41 +02:00
parent 17f971344d
commit fc6c49f57c
2 changed files with 13 additions and 40 deletions

View File

@ -24,8 +24,7 @@ from PyQt5.QtCore import pyqtSignal, pyqtSlot, QObject, QTimer
from qutebrowser.config import config
from qutebrowser.commands import cmdexc, cmdutils, runners
from qutebrowser.utils import usertypes, log, objreg, utils
from qutebrowser.completion.models import instances
from qutebrowser.completion.models.sortfilter import CompletionFilterModel
from qutebrowser.completion.models import instances, sortfilter
class Completer(QObject):
@ -154,19 +153,7 @@ class Completer(QObject):
model = None
else:
model = instances.get(completion)
return self._get_filter_completion_model(model)
def _get_filter_completion_model(self, model):
"""Wrap the argument model with a CompletionFilterModel.
Args:
model: the source model.
Return:
A completion filter model.
"""
filtermodel = CompletionFilterModel(source=model, parent=self)
return filtermodel
return sortfilter.CompletionFilterModel(source=model, parent=self)
def _filter_cmdline_parts(self, parts, cursor_part):
"""Filter a list of commandline parts to exclude flags.
@ -216,7 +203,7 @@ class Completer(QObject):
if cursor_part == 0:
# '|' or 'set|'
model = instances.get(usertypes.Completion.command)
return self._get_filter_completion_model(model)
return sortfilter.CompletionFilterModel(source=model, parent=self)
# delegate completion to command
try:
completions = cmdutils.cmd_dict[parts[0]].completion

View File

@ -37,30 +37,17 @@ from qutebrowser.config import configdata
_instances = {}
def _init_model(klass, *args, **kwargs):
"""Helper to initialize a model.
Args:
klass: The class of the model to initialize.
*args: Arguments to pass to the model.
**kwargs: Keyword arguments to pass to the model.
dumb_sort: Passed to CompletionFilterModel.
"""
app = objreg.get('app')
return klass(*args, parent=app, **kwargs)
def _init_command_completion():
"""Initialize the command completion model."""
log.completion.debug("Initializing command completion.")
model = _init_model(miscmodels.CommandCompletionModel)
model = miscmodels.CommandCompletionModel()
_instances[usertypes.Completion.command] = model
def _init_helptopic_completion():
"""Initialize the helptopic completion model."""
log.completion.debug("Initializing helptopic completion.")
model = _init_model(miscmodels.HelpCompletionModel)
model = miscmodels.HelpCompletionModel()
_instances[usertypes.Completion.helptopic] = model
@ -68,24 +55,23 @@ def _init_url_completion():
"""Initialize the URL completion model."""
log.completion.debug("Initializing URL completion.")
with debug.log_time(log.completion, 'URL completion init'):
model = _init_model(urlmodel.UrlCompletionModel)
model = urlmodel.UrlCompletionModel()
_instances[usertypes.Completion.url] = model
def _init_setting_completions():
"""Initialize setting completion models."""
log.completion.debug("Initializing setting completion.")
_instances[usertypes.Completion.section] = _init_model(
configmodel.SettingSectionCompletionModel)
_instances[usertypes.Completion.section] = (
configmodel.SettingSectionCompletionModel())
_instances[usertypes.Completion.option] = {}
_instances[usertypes.Completion.value] = {}
for sectname in configdata.DATA:
model = _init_model(configmodel.SettingOptionCompletionModel, sectname)
model = configmodel.SettingOptionCompletionModel(sectname)
_instances[usertypes.Completion.option][sectname] = model
_instances[usertypes.Completion.value][sectname] = {}
for opt in configdata.DATA[sectname].keys():
model = _init_model(configmodel.SettingValueCompletionModel,
sectname, opt)
model = configmodel.SettingValueCompletionModel(sectname, opt)
_instances[usertypes.Completion.value][sectname][opt] = model
@ -97,7 +83,7 @@ def init_quickmark_completions():
_instances[usertypes.Completion.quickmark_by_name].deleteLater()
except KeyError:
pass
model = _init_model(miscmodels.QuickmarkCompletionModel)
model = miscmodels.QuickmarkCompletionModel()
_instances[usertypes.Completion.quickmark_by_name] = model
@ -109,7 +95,7 @@ def init_bookmark_completions():
_instances[usertypes.Completion.bookmark_by_url].deleteLater()
except KeyError:
pass
model = _init_model(miscmodels.BookmarkCompletionModel)
model = miscmodels.BookmarkCompletionModel()
_instances[usertypes.Completion.bookmark_by_url] = model
@ -121,7 +107,7 @@ def init_session_completion():
_instances[usertypes.Completion.sessions].deleteLater()
except KeyError:
pass
model = _init_model(miscmodels.SessionCompletionModel)
model = miscmodels.SessionCompletionModel()
_instances[usertypes.Completion.sessions] = model