mirror of
https://github.com/alicevision/Meshroom.git
synced 2025-05-16 10:36:29 +02:00
[core] Add validValue
and errorMessage
support for ChoiceParams
ChoiceParams can now also have their `validValue` and `errorMessage` parameters. The `validValueChanged` is also emitted whenever a parameter's value changes. This ensures that the `validValue` parameter is always re- evaluated when the attribute is updated, even if `validValue` itself does not change.
This commit is contained in:
parent
e873dbf280
commit
e6bf7e6e2d
2 changed files with 5 additions and 2 deletions
|
@ -196,6 +196,7 @@ class Attribute(BaseObject):
|
||||||
self.requestNodeUpdate()
|
self.requestNodeUpdate()
|
||||||
|
|
||||||
self.valueChanged.emit()
|
self.valueChanged.emit()
|
||||||
|
self.validValueChanged.emit()
|
||||||
|
|
||||||
def upgradeValue(self, exportedValue):
|
def upgradeValue(self, exportedValue):
|
||||||
self._set_value(exportedValue)
|
self._set_value(exportedValue)
|
||||||
|
|
|
@ -303,13 +303,15 @@ class FloatParam(Param):
|
||||||
class ChoiceParam(Param):
|
class ChoiceParam(Param):
|
||||||
"""
|
"""
|
||||||
"""
|
"""
|
||||||
def __init__(self, name, label, description, value, values, exclusive, uid, group='allParams', joinChar=' ', advanced=False, semantic='', enabled=True):
|
def __init__(self, name, label, description, value, values, exclusive, uid, group='allParams', joinChar=' ', advanced=False, semantic='',
|
||||||
|
enabled=True, validValue=True, errorMessage=""):
|
||||||
assert values
|
assert values
|
||||||
self._values = values
|
self._values = values
|
||||||
self._exclusive = exclusive
|
self._exclusive = exclusive
|
||||||
self._joinChar = joinChar
|
self._joinChar = joinChar
|
||||||
self._valueType = type(self._values[0]) # cast to value type
|
self._valueType = type(self._values[0]) # cast to value type
|
||||||
super(ChoiceParam, self).__init__(name=name, label=label, description=description, value=value, uid=uid, group=group, advanced=advanced, semantic=semantic, enabled=enabled)
|
super(ChoiceParam, self).__init__(name=name, label=label, description=description, value=value, uid=uid, group=group, advanced=advanced,
|
||||||
|
semantic=semantic, enabled=enabled, validValue=validValue, errorMessage=errorMessage)
|
||||||
|
|
||||||
def conformValue(self, val):
|
def conformValue(self, val):
|
||||||
""" Conform 'val' to the correct type and check for its validity """
|
""" Conform 'val' to the correct type and check for its validity """
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue