mirror of
https://github.com/alicevision/Meshroom.git
synced 2025-05-18 11:36:27 +02:00
[core] fix enabled parameter inside group and list
This commit is contained in:
parent
2d953d7319
commit
524a4ab629
2 changed files with 24 additions and 13 deletions
|
@ -97,7 +97,9 @@ class Attribute(BaseObject):
|
||||||
return self._label
|
return self._label
|
||||||
|
|
||||||
def getEnabled(self):
|
def getEnabled(self):
|
||||||
return self._enabled
|
if isinstance(self.desc.enabled, types.FunctionType):
|
||||||
|
return self.desc.enabled(self.node)
|
||||||
|
return self.attributeDesc.enabled
|
||||||
|
|
||||||
def setEnabled(self, v):
|
def setEnabled(self, v):
|
||||||
if self._enabled == v:
|
if self._enabled == v:
|
||||||
|
@ -235,10 +237,9 @@ class Attribute(BaseObject):
|
||||||
return self._value
|
return self._value
|
||||||
|
|
||||||
def updateInternals(self):
|
def updateInternals(self):
|
||||||
if isinstance(self.desc.enabled, types.FunctionType):
|
# Emit if the enable status has changed
|
||||||
self.setEnabled(self.desc.enabled(self.node))
|
self.setEnabled(self.getEnabled())
|
||||||
else:
|
|
||||||
self.setEnabled(self.attributeDesc.enabled)
|
|
||||||
|
|
||||||
name = Property(str, getName, constant=True)
|
name = Property(str, getName, constant=True)
|
||||||
fullName = Property(str, getFullName, constant=True)
|
fullName = Property(str, getFullName, constant=True)
|
||||||
|
@ -371,6 +372,11 @@ class ListAttribute(Attribute):
|
||||||
return self.attributeDesc.joinChar.join([v.getValueStr() for v in self.value])
|
return self.attributeDesc.joinChar.join([v.getValueStr() for v in self.value])
|
||||||
return super(ListAttribute, self).getValueStr()
|
return super(ListAttribute, self).getValueStr()
|
||||||
|
|
||||||
|
def updateInternals(self):
|
||||||
|
super(ListAttribute, self).updateInternals()
|
||||||
|
for attr in self._value:
|
||||||
|
attr.updateInternals()
|
||||||
|
|
||||||
# Override value property setter
|
# Override value property setter
|
||||||
value = Property(Variant, Attribute._get_value, _set_value, notify=Attribute.valueChanged)
|
value = Property(Variant, Attribute._get_value, _set_value, notify=Attribute.valueChanged)
|
||||||
isDefault = Property(bool, _isDefault, notify=Attribute.valueChanged)
|
isDefault = Property(bool, _isDefault, notify=Attribute.valueChanged)
|
||||||
|
@ -452,6 +458,11 @@ class GroupAttribute(Attribute):
|
||||||
sortedSubValues = [self._value.get(attr.name).getValueStr() for attr in self.attributeDesc.groupDesc]
|
sortedSubValues = [self._value.get(attr.name).getValueStr() for attr in self.attributeDesc.groupDesc]
|
||||||
return self.attributeDesc.joinChar.join(sortedSubValues)
|
return self.attributeDesc.joinChar.join(sortedSubValues)
|
||||||
|
|
||||||
|
def updateInternals(self):
|
||||||
|
super(GroupAttribute, self).updateInternals()
|
||||||
|
for attr in self._value:
|
||||||
|
attr.updateInternals()
|
||||||
|
|
||||||
# Override value property
|
# Override value property
|
||||||
value = Property(Variant, Attribute._get_value, _set_value, notify=Attribute.valueChanged)
|
value = Property(Variant, Attribute._get_value, _set_value, notify=Attribute.valueChanged)
|
||||||
isDefault = Property(bool, _isDefault, notify=Attribute.valueChanged)
|
isDefault = Property(bool, _isDefault, notify=Attribute.valueChanged)
|
||||||
|
|
|
@ -547,8 +547,8 @@ class BaseNode(BaseObject):
|
||||||
|
|
||||||
def _buildCmdVars(self):
|
def _buildCmdVars(self):
|
||||||
def _buildAttributeCmdVars(cmdVars, name, attr):
|
def _buildAttributeCmdVars(cmdVars, name, attr):
|
||||||
if attr.attributeDesc.group is not None:
|
if attr.enabled:
|
||||||
if attr.enabled:
|
if attr.attributeDesc.group is not None:
|
||||||
# if there is a valid command line "group"
|
# if there is a valid command line "group"
|
||||||
v = attr.getValueStr()
|
v = attr.getValueStr()
|
||||||
cmdVars[name] = '--{name} {value}'.format(name=name, value=v)
|
cmdVars[name] = '--{name} {value}'.format(name=name, value=v)
|
||||||
|
@ -557,12 +557,12 @@ class BaseNode(BaseObject):
|
||||||
if v:
|
if v:
|
||||||
cmdVars[attr.attributeDesc.group] = cmdVars.get(attr.attributeDesc.group, '') + \
|
cmdVars[attr.attributeDesc.group] = cmdVars.get(attr.attributeDesc.group, '') + \
|
||||||
' ' + cmdVars[name]
|
' ' + cmdVars[name]
|
||||||
elif isinstance(attr, GroupAttribute):
|
elif isinstance(attr, GroupAttribute):
|
||||||
assert isinstance(attr.value, DictModel)
|
assert isinstance(attr.value, DictModel)
|
||||||
# if the GroupAttribute is not set in a single command line argument,
|
# if the GroupAttribute is not set in a single command line argument,
|
||||||
# the sub-attributes may need to be exposed individually
|
# the sub-attributes may need to be exposed individually
|
||||||
for v in attr._value:
|
for v in attr._value:
|
||||||
_buildAttributeCmdVars(cmdVars, v.name, v)
|
_buildAttributeCmdVars(cmdVars, v.name, v)
|
||||||
|
|
||||||
""" Generate command variables using input attributes and resolved output attributes names and values. """
|
""" Generate command variables using input attributes and resolved output attributes names and values. """
|
||||||
for uidIndex, value in self._uids.items():
|
for uidIndex, value in self._uids.items():
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue