diff --git a/meshroom/core/attribute.py b/meshroom/core/attribute.py index 0c9bb563..2e6059ff 100644 --- a/meshroom/core/attribute.py +++ b/meshroom/core/attribute.py @@ -196,6 +196,7 @@ class Attribute(BaseObject): self.requestNodeUpdate() self.valueChanged.emit() + self.validValueChanged.emit() def upgradeValue(self, exportedValue): self._set_value(exportedValue) diff --git a/meshroom/core/desc.py b/meshroom/core/desc.py index 05d9478a..6d8cc2fa 100644 --- a/meshroom/core/desc.py +++ b/meshroom/core/desc.py @@ -303,13 +303,15 @@ class FloatParam(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 self._values = values self._exclusive = exclusive self._joinChar = joinChar 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): """ Conform 'val' to the correct type and check for its validity """