Regenerate CommandCompletionModel if necessary.
This commit is contained in:
parent
f8ab7e5052
commit
b961cb8907
@ -37,7 +37,7 @@ import qutebrowser.config.configdata as configdata
|
|||||||
from qutebrowser.models.basecompletion import ROLE_MARKS, NoCompletionsError
|
from qutebrowser.models.basecompletion import ROLE_MARKS, NoCompletionsError
|
||||||
from qutebrowser.config.style import set_register_stylesheet, get_stylesheet
|
from qutebrowser.config.style import set_register_stylesheet, get_stylesheet
|
||||||
from qutebrowser.commands.managers import split_cmdline
|
from qutebrowser.commands.managers import split_cmdline
|
||||||
from qutebrowser.models.completionfilter import CompletionFilterModel
|
from qutebrowser.models.completionfilter import CompletionFilterModel as CFM
|
||||||
from qutebrowser.models.completion import (
|
from qutebrowser.models.completion import (
|
||||||
CommandCompletionModel, SettingSectionCompletionModel,
|
CommandCompletionModel, SettingSectionCompletionModel,
|
||||||
SettingOptionCompletionModel, SettingValueCompletionModel)
|
SettingOptionCompletionModel, SettingValueCompletionModel)
|
||||||
@ -109,13 +109,11 @@ class CompletionView(QTreeView):
|
|||||||
self._model = None
|
self._model = None
|
||||||
self._lastmodel = None
|
self._lastmodel = None
|
||||||
self._models = {
|
self._models = {
|
||||||
'command': CompletionFilterModel(CommandCompletionModel(self)),
|
|
||||||
'section': CompletionFilterModel(
|
|
||||||
SettingSectionCompletionModel(self)),
|
|
||||||
'option': {},
|
'option': {},
|
||||||
'value': {},
|
'value': {},
|
||||||
}
|
}
|
||||||
self._init_completions()
|
self._init_command_completion()
|
||||||
|
self._init_setting_completions()
|
||||||
self._completing = False
|
self._completing = False
|
||||||
|
|
||||||
self._delegate = _CompletionItemDelegate(self)
|
self._delegate = _CompletionItemDelegate(self)
|
||||||
@ -135,16 +133,23 @@ class CompletionView(QTreeView):
|
|||||||
self.hide()
|
self.hide()
|
||||||
# FIXME set elidemode
|
# FIXME set elidemode
|
||||||
|
|
||||||
def _init_completions(self):
|
def _init_command_completion(self):
|
||||||
"""Initialize completion models."""
|
"""Initialize the command completion model."""
|
||||||
|
self._models['command'] = CFM(CommandCompletionModel(self))
|
||||||
|
|
||||||
|
def _init_setting_completions(self):
|
||||||
|
"""Initialize setting completion models."""
|
||||||
|
self._models['section'] = CFM(SettingSectionCompletionModel(self))
|
||||||
|
self._models['option'] = {}
|
||||||
|
self._models['value'] = {}
|
||||||
for sectname, sect in configdata.DATA.items():
|
for sectname, sect in configdata.DATA.items():
|
||||||
self._models['option'][sectname] = CompletionFilterModel(
|
self._models['option'][sectname] = CFM(
|
||||||
SettingOptionCompletionModel(sectname, self))
|
SettingOptionCompletionModel(sectname, self))
|
||||||
if hasattr(sect, 'valtype'):
|
if hasattr(sect, 'valtype'):
|
||||||
# Same type for all values (ValueList)
|
# Same type for all values (ValueList)
|
||||||
try:
|
try:
|
||||||
model = CompletionFilterModel(
|
model = CFM(SettingValueCompletionModel(
|
||||||
SettingValueCompletionModel(sectname, parent=self))
|
sectname, parent=self))
|
||||||
self._models['value'][sectname] = FakeDict(model)
|
self._models['value'][sectname] = FakeDict(model)
|
||||||
except NoCompletionsError:
|
except NoCompletionsError:
|
||||||
pass
|
pass
|
||||||
@ -152,9 +157,8 @@ class CompletionView(QTreeView):
|
|||||||
self._models['value'][sectname] = {}
|
self._models['value'][sectname] = {}
|
||||||
for opt in configdata.DATA[sectname].keys():
|
for opt in configdata.DATA[sectname].keys():
|
||||||
try:
|
try:
|
||||||
self._models['value'][sectname][opt] = (
|
self._models['value'][sectname][opt] = CFM(
|
||||||
CompletionFilterModel(SettingValueCompletionModel(
|
SettingValueCompletionModel(sectname, opt, self))
|
||||||
sectname, opt, self)))
|
|
||||||
except NoCompletionsError:
|
except NoCompletionsError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@ -265,6 +269,8 @@ class CompletionView(QTreeView):
|
|||||||
"""Update self._enabled when the config changed."""
|
"""Update self._enabled when the config changed."""
|
||||||
if section == 'completion' and option == 'show':
|
if section == 'completion' and option == 'show':
|
||||||
self._enabled = config.get('completion', 'show')
|
self._enabled = config.get('completion', 'show')
|
||||||
|
elif section == 'aliases':
|
||||||
|
self._init_command_completion()
|
||||||
|
|
||||||
@pyqtSlot(str)
|
@pyqtSlot(str)
|
||||||
def on_cmd_text_changed(self, text):
|
def on_cmd_text_changed(self, text):
|
||||||
|
Loading…
Reference in New Issue
Block a user