Simplify setting value completion models.

This commit is contained in:
Florian Bruhin 2014-06-04 06:42:57 +02:00
parent e55174793a
commit 062b7b177b
2 changed files with 11 additions and 26 deletions

View File

@ -91,17 +91,15 @@ class SettingValueCompletionModel(BaseCompletionModel):
super().__init__(parent) super().__init__(parent)
if hasattr(configdata.DATA[section], 'valtype'): if hasattr(configdata.DATA[section], 'valtype'):
# Same type for all values (ValueList) # Same type for all values (ValueList)
cat = self.new_category(section)
vals = configdata.DATA[section].valtype.complete() vals = configdata.DATA[section].valtype.complete()
else: else:
if option is None: if option is None:
raise ValueError("option may only be None for ValueList " raise ValueError("option may only be None for ValueList "
"sections, but {} is not!".format(section)) "sections, but {} is not!".format(section))
# Different type for each value (KeyValue) # Different type for each value (KeyValue)
cat = self.new_category(option)
vals = configdata.DATA[section][option].typ.complete() vals = configdata.DATA[section][option].typ.complete()
if vals is None: if vals is not None:
raise NoCompletionsError cat = self.new_category(section)
for (val, desc) in vals: for (val, desc) in vals:
self.new_item(cat, val, desc) self.new_item(cat, val, desc)

View File

@ -73,26 +73,13 @@ class Completer(QObject):
self._models['option'] = {} self._models['option'] = {}
self._models['value'] = {} self._models['value'] = {}
for sectname, sect in configdata.DATA.items(): for sectname, sect in configdata.DATA.items():
optmodel = CFM(SettingOptionCompletionModel(sectname, self)) model = SettingOptionCompletionModel(sectname, self)
self._models['option'][sectname] = optmodel self._models['option'][sectname] = CFM(model)
config.instance().changed.connect( config.instance().changed.connect(model.on_config_changed)
optmodel.srcmodel.on_config_changed)
if hasattr(sect, 'valtype'):
# Same type for all values (ValueList)
try:
model = CFM(SettingValueCompletionModel(
sectname, parent=self))
self._models['value'][sectname] = FakeDict(model)
except NoCompletionsError:
pass
else:
self._models['value'][sectname] = {} self._models['value'][sectname] = {}
for opt in configdata.DATA[sectname].keys(): for opt in configdata.DATA[sectname].keys():
try: model = SettingValueCompletionModel(sectname, opt, self)
self._models['value'][sectname][opt] = CFM( self._models['value'][sectname][opt] = CFM(model)
SettingValueCompletionModel(sectname, opt, self))
except NoCompletionsError:
pass
def _get_new_completion(self, parts, cursor_part): def _get_new_completion(self, parts, cursor_part):
"""Get a new completion model. """Get a new completion model.