fixes
This commit is contained in:
parent
afe45f9970
commit
572a9857ec
@ -55,13 +55,13 @@ class Completer(QObject):
|
||||
self._win_id = win_id
|
||||
self._ignore_change = False
|
||||
|
||||
self.models = {
|
||||
self._models = {
|
||||
usertypes.Completion.option: {},
|
||||
usertypes.Completion.value: {},
|
||||
}
|
||||
self._init_static_completions()
|
||||
self._init_setting_completions()
|
||||
self._init_quickmark_completions()
|
||||
self.init_quickmark_completions()
|
||||
|
||||
def __repr__(self):
|
||||
return utils.get_repr(self)
|
||||
@ -74,30 +74,35 @@ class Completer(QObject):
|
||||
|
||||
def _init_static_completions(self):
|
||||
"""Initialize the static completion models."""
|
||||
self.models[usertypes.Completion.command] = CFM(
|
||||
self._models[usertypes.Completion.command] = CFM(
|
||||
models.CommandCompletionModel(self), self)
|
||||
self.models[usertypes.Completion.helptopic] = CFM(
|
||||
self._models[usertypes.Completion.helptopic] = CFM(
|
||||
models.HelpCompletionModel(self), self)
|
||||
|
||||
def _init_setting_completions(self):
|
||||
"""Initialize setting completion models."""
|
||||
self.models[usertypes.Completion.section] = CFM(
|
||||
self._models[usertypes.Completion.section] = CFM(
|
||||
models.SettingSectionCompletionModel(self), self)
|
||||
self.models[usertypes.Completion.option] = {}
|
||||
self.models[usertypes.Completion.value] = {}
|
||||
self._models[usertypes.Completion.option] = {}
|
||||
self._models[usertypes.Completion.value] = {}
|
||||
for sectname in configdata.DATA:
|
||||
model = models.SettingOptionCompletionModel(sectname, self)
|
||||
self.models[usertypes.Completion.option][sectname] = CFM(
|
||||
self._models[usertypes.Completion.option][sectname] = CFM(
|
||||
model, self)
|
||||
self.models[usertypes.Completion.value][sectname] = {}
|
||||
self._models[usertypes.Completion.value][sectname] = {}
|
||||
for opt in configdata.DATA[sectname].keys():
|
||||
model = models.SettingValueCompletionModel(sectname, opt, self)
|
||||
self.models[usertypes.Completion.value][sectname][opt] = CFM(
|
||||
self._models[usertypes.Completion.value][sectname][opt] = CFM(
|
||||
model, self)
|
||||
|
||||
def _init_quickmark_completions(self):
|
||||
@pyqtSlot()
|
||||
def init_quickmark_completions(self):
|
||||
"""Initialize quickmark completion models."""
|
||||
self.models[usertypes.Completion.quickmark] = CFM(
|
||||
try:
|
||||
self._models[usertypes.Completion.quickmark].deleteLater()
|
||||
except KeyError:
|
||||
pass
|
||||
self._models[usertypes.Completion.quickmark] = CFM(
|
||||
models.QuickmarkCompletionModel(self), self)
|
||||
|
||||
def _get_new_completion(self, parts, cursor_part):
|
||||
@ -109,7 +114,7 @@ class Completer(QObject):
|
||||
"""
|
||||
if cursor_part == 0:
|
||||
# '|' or 'set|'
|
||||
return self.models[usertypes.Completion.command]
|
||||
return self._models[usertypes.Completion.command]
|
||||
# delegate completion to command
|
||||
try:
|
||||
completions = cmdutils.cmd_dict[parts[0]].completion
|
||||
@ -133,17 +138,17 @@ class Completer(QObject):
|
||||
', '.join(dbg_completions)))
|
||||
if completion == usertypes.Completion.option:
|
||||
section = parts[cursor_part - 1]
|
||||
model = self.models[completion].get(section)
|
||||
model = self._models[completion].get(section)
|
||||
elif completion == usertypes.Completion.value:
|
||||
section = parts[cursor_part - 2]
|
||||
option = parts[cursor_part - 1]
|
||||
try:
|
||||
model = self.models[completion][section][option]
|
||||
model = self._models[completion][section][option]
|
||||
except KeyError:
|
||||
# No completion model for this section/option.
|
||||
model = None
|
||||
else:
|
||||
model = self.models.get(completion)
|
||||
model = self._models.get(completion)
|
||||
return model
|
||||
|
||||
def _quote(self, s):
|
||||
@ -186,11 +191,6 @@ class Completer(QObject):
|
||||
self._ignore_change = True
|
||||
self.change_completed_part.emit(data, False)
|
||||
|
||||
@pyqtSlot()
|
||||
def on_quickmarks_changed(self):
|
||||
self.clear()
|
||||
self._init_quickmark_completions()
|
||||
|
||||
@pyqtSlot(str, list, int)
|
||||
def on_update_completion(self, prefix, parts, cursor_part):
|
||||
"""Schedule updating/enabling completion.
|
||||
|
@ -119,10 +119,6 @@ class MainWindow(QWidget):
|
||||
config.on_change(self.resize_completion, 'completion', 'height')
|
||||
config.on_change(self.resize_completion, 'completion', 'shrink')
|
||||
|
||||
quickmark_model = self._get_object('completer').models[usertypes.Completion.quickmark]
|
||||
quickmark_manager = objreg.get('quickmark-manager')
|
||||
quickmark_manager.changed.connect(quickmark_model.srcmodel.on_quickmarks_changed)
|
||||
|
||||
#self.retranslateUi(MainWindow)
|
||||
#self.tabWidget.setCurrentIndex(0)
|
||||
#QtCore.QMetaObject.connectSlotsByName(MainWindow)
|
||||
@ -264,6 +260,11 @@ class MainWindow(QWidget):
|
||||
# downloads
|
||||
tabs.start_download.connect(download_manager.fetch)
|
||||
|
||||
# quickmark completion
|
||||
completer = self._get_object('completer')
|
||||
quickmark_manager = objreg.get('quickmark-manager')
|
||||
quickmark_manager.changed.connect(completer.init_quickmark_completions)
|
||||
|
||||
@pyqtSlot()
|
||||
def resize_completion(self):
|
||||
"""Adjust completion according to config."""
|
||||
|
Loading…
Reference in New Issue
Block a user