[core] Set internal attributes when copy/pasting nodes

This commit is contained in:
Aurore LAFAURIE 2024-04-26 15:56:26 +02:00
parent 6791f02f2d
commit 5d70a51285
2 changed files with 14 additions and 0 deletions

View file

@ -1258,6 +1258,7 @@ class Node(BaseNode):
self.attributesPerUid[uidIndex].add(attr)
self.setAttributeValues(kwargs)
self.setInternalAttributeValues(kwargs)
self.optionalCallOnDescriptor("onNodeCreated")
def optionalCallOnDescriptor(self, methodName, *args, **kwargs):
@ -1270,6 +1271,9 @@ class Node(BaseNode):
def setAttributeValues(self, values):
# initialize attribute values
for k, v in values.items():
if not self.hasAttribute(k):
# skip missing attributes
continue
attr = self.attribute(k)
if attr.isInput:
attr.value = v
@ -1287,6 +1291,15 @@ class Node(BaseNode):
except ValueError:
pass
def setInternalAttributeValues(self, values):
# initialize internal attribute values
for k, v in values.items():
if not self.hasInternalAttribute(k):
# skip missing attributes
continue
attr = self.internalAttribute(k)
attr.value = v
def upgradeInternalAttributeValues(self, values):
# initialize internal attibute values
for k, v in values.items():