// 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);
}
}
else if (aFieldRes.get()) {
- ModelAPI_ResultField::ModelAPI_FieldStep* aStep = aFieldRes->step(i);
- if (i < myChildren.size()) {
- PartSet_StepNode* aStepNode = static_cast<PartSet_StepNode*>(myChildren.at(i));
- if (aStepNode->entity() != aStep) {
- aStepNode->setEntity(aStep);
+ FieldStepPtr aStep = aFieldRes->step(i);
+ if (aStep.get()) {
+ if (i < myChildren.size()) {
+ PartSet_StepNode* aStepNode = static_cast<PartSet_StepNode*>(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);
}
}
}
ResultFieldPtr aFieldRes = std::dynamic_pointer_cast<ModelAPI_ResultField>(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()) {
}
}
else {
- ModelAPI_ResultField::ModelAPI_FieldStep* aStep = aFieldRes->step(i);
- if (i < myChildren.size()) {
- PartSet_StepNode* aStepNode = static_cast<PartSet_StepNode*>(myChildren.at(i));
- if (aStepNode->entity() != aStep) {
- aStepNode->setEntity(aStep);
+ FieldStepPtr aStep = aFieldRes->step(i);
+ if (aStep.get()) {
+ if (i < myChildren.size()) {
+ PartSet_StepNode* aStepNode = static_cast<PartSet_StepNode*>(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);
}
}
}
QVariant PartSet_StepNode::data(int theColumn, int theRole) const
{
if ((theColumn == 1) && (theRole == Qt::DisplayRole)) {
- ModelAPI_ResultField::ModelAPI_FieldStep* aStep =
- dynamic_cast<ModelAPI_ResultField::ModelAPI_FieldStep*>(myEntity);
+ FieldStepPtr aStep =
+ std::dynamic_pointer_cast<ModelAPI_ResultField::ModelAPI_FieldStep>(myObject);
return "Step " + QString::number(aStep->id() + 1) + " " +
aStep->field()->textLine(aStep->id()).c_str();
}
- return PartSet_TreeNode::data(theColumn, theRole);
+ return PartSet_ObjectNode::data(theColumn, theRole);
+}
+
+ModuleBase_ITreeNode::VisibilityState PartSet_StepNode::visibilityState() const
+{
+ Qt::ItemFlags aFlags = flags(1);
+ if (aFlags == Qt::ItemFlags())
+ return NoneState;
+
+ ModuleBase_IWorkshop* aWork = workshop();
+ if (aWork->isVisible(myObject))
+ return Visible;
+ else
+ return Hidden;
}