X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FPartSet%2FPartSet_TreeNodes.cpp;h=e886365e2b28a63e4b789b5108d2b33b4cba15e3;hb=b240d1def415f30a9569bd71f6715c72c0a92291;hp=b49acbb10ec811917d19510e29b8c50fdb1684ba;hpb=c53720ca78f12ec6333ca44c8dc2bb6b7a9a5294;p=modules%2Fshaper.git diff --git a/src/PartSet/PartSet_TreeNodes.cpp b/src/PartSet/PartSet_TreeNodes.cpp index b49acbb10..e886365e2 100644 --- a/src/PartSet/PartSet_TreeNodes.cpp +++ b/src/PartSet/PartSet_TreeNodes.cpp @@ -232,6 +232,9 @@ void PartSet_ObjectNode::update() // If the object is a field result then delete extra sub-objects if (aFieldRes.get()) { + // Call shape in order to update content of Field. + // It is necessary to do for cases when field was created by script when module is inactive. + aFieldRes->shape(); while (myChildren.size() > aNb) { ModuleBase_ITreeNode* aNode = myChildren.last(); myChildren.removeAll(aNode); @@ -274,15 +277,17 @@ void PartSet_ObjectNode::update() } else if (aFieldRes.get()) { FieldStepPtr aStep = aFieldRes->step(i); - if (i < myChildren.size()) { - PartSet_StepNode* aStepNode = static_cast(myChildren.at(i)); - if (aStepNode->object() != aStep) { - aStepNode->setObject(aStep); + if (aStep.get()) { + if (i < myChildren.size()) { + PartSet_StepNode* aStepNode = static_cast(myChildren.at(i)); + if (aStepNode->object() != aStep) { + aStepNode->setObject(aStep); + } + } + else { + aNode = new PartSet_StepNode(aStep, this); + myChildren.append(aNode); } - } - else { - aNode = new PartSet_StepNode(aStep, this); - myChildren.append(aNode); } } } @@ -309,6 +314,10 @@ QTreeNodesList PartSet_ObjectNode::objectCreated(const QObjectPtrList& theObject ResultFieldPtr aFieldRes = std::dynamic_pointer_cast(myObject); ObjectPtr aBody; int i; + // Call shape in order to update content of Field. + // It is necessary to do for cases when field was created by script when module is inactive. + if (aFieldRes.get()) + aFieldRes->shape(); for (i = 0; i < aNb; i++) { aBody = subObject(i); if (aBody.get()) { @@ -328,15 +337,17 @@ QTreeNodesList PartSet_ObjectNode::objectCreated(const QObjectPtrList& theObject } else { FieldStepPtr aStep = aFieldRes->step(i); - if (i < myChildren.size()) { - PartSet_StepNode* aStepNode = static_cast(myChildren.at(i)); - if (aStepNode->object() != aStep) { - aStepNode->setObject(aStep); + if (aStep.get()) { + if (i < myChildren.size()) { + PartSet_StepNode* aStepNode = static_cast(myChildren.at(i)); + if (aStepNode->object() != aStep) { + aStepNode->setObject(aStep); + } + } + else { + aNode = new PartSet_StepNode(aStep, this); + myChildren.append(aNode); } - } - else { - aNode = new PartSet_StepNode(aStep, this); - myChildren.append(aNode); } } }