Skip to content

Commit 4686b0d

Browse files
committed
[core] Attribute: remove emitSignals logic on value setting
With valueChanged signal being connected outside of the Attribute's constructor, the emitSignals logic is not required to prevent early valueChanged propagation.
1 parent 8e3b987 commit 4686b0d

File tree

1 file changed

+11
-17
lines changed

1 file changed

+11
-17
lines changed

meshroom/core/attribute.py

Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ def attributeFactory(description, value, isOutput, node, root=None, parent=None)
2727
"""
2828
attr: Attribute = description.instanceType(node, description, isOutput, root, parent)
2929
if value is not None:
30-
attr._set_value(value, emitSignals=False)
30+
attr._set_value(value)
3131
else:
32-
attr.resetToDefaultValue(emitSignals=False)
32+
attr.resetToDefaultValue()
3333

3434
attr.valueChanged.connect(lambda attr=attr: node._onAttributeChanged(attr))
3535

@@ -182,7 +182,7 @@ def _get_value(self):
182182
return self.getLinkParam().value
183183
return self._value
184184

185-
def _set_value(self, value, emitSignals=True):
185+
def _set_value(self, value):
186186
if self._value == value:
187187
return
188188

@@ -198,9 +198,6 @@ def _set_value(self, value, emitSignals=True):
198198
convertedValue = self.validateValue(value)
199199
self._value = convertedValue
200200

201-
if not emitSignals:
202-
return
203-
204201
# Request graph update when input parameter value is set
205202
# and parent node belongs to a graph
206203
# Output attributes value are set internally during the update process,
@@ -238,8 +235,8 @@ def initValue(self):
238235
if self.desc._valueType is not None:
239236
self._value = self.desc._valueType()
240237

241-
def resetToDefaultValue(self, emitSignals=True):
242-
self._set_value(copy.copy(self.defaultValue()), emitSignals=emitSignals)
238+
def resetToDefaultValue(self):
239+
self._set_value(copy.copy(self.defaultValue()))
243240

244241
def requestGraphUpdate(self):
245242
if self.node.graph:
@@ -525,14 +522,13 @@ def index(self, item):
525522
return self._value.indexOf(item)
526523

527524
def initValue(self):
528-
self.resetToDefaultValue(emitSignals=False)
525+
self.resetToDefaultValue()
529526

530-
def resetToDefaultValue(self, emitSignals=True):
527+
def resetToDefaultValue(self):
531528
self._value = ListModel(parent=self)
532-
if emitSignals:
533-
self.valueChanged.emit()
529+
self.valueChanged.emit()
534530

535-
def _set_value(self, value, emitSignals=True):
531+
def _set_value(self, value):
536532
if self.node.graph:
537533
self.remove(0, len(self))
538534
# Link to another attribute
@@ -545,8 +541,6 @@ def _set_value(self, value, emitSignals=True):
545541
self._value = ListModel(parent=self)
546542
newValue = self.desc.validateValue(value)
547543
self.extend(newValue)
548-
if not emitSignals:
549-
return
550544
self.requestGraphUpdate()
551545

552546
def upgradeValue(self, exportedValues):
@@ -683,7 +677,7 @@ def __getattr__(self, key):
683677
except KeyError:
684678
raise AttributeError(key)
685679

686-
def _set_value(self, exportedValue, emitSignals=True):
680+
def _set_value(self, exportedValue):
687681
value = self.validateValue(exportedValue)
688682
if isinstance(value, dict):
689683
# set individual child attribute values
@@ -721,7 +715,7 @@ def initValue(self):
721715
childAttr.valueChanged.connect(self.valueChanged)
722716
self._value.reset(subAttributes)
723717

724-
def resetToDefaultValue(self, emitSignals=True):
718+
def resetToDefaultValue(self):
725719
for attrDesc in self.desc._groupDesc:
726720
self._value.get(attrDesc.name).resetToDefaultValue()
727721

0 commit comments

Comments
 (0)