]> SALOME platform Git repositories - modules/shaper.git/blobdiff - src/Model/Model_AttributeSelection.cpp
Salome HOME
Update for the spheres centers correct initialization on open: selection should not...
[modules/shaper.git] / src / Model / Model_AttributeSelection.cpp
index 063642c3fbaadcd01f747925fc5c2d378079c2dd..f370d48736f5bb5ab45ab39dd5f61c7627fb11b0 100644 (file)
@@ -419,15 +419,18 @@ bool Model_AttributeSelection::isInitialized()
       if (selectionLabel().FindAttribute(TNaming_NamedShape::GetID(), aSelection)) {
         return !aSelection->Get().IsNull();
       } else { // for simple construction element: just shape of this construction element
-        std::shared_ptr<Model_ResultConstruction> aConstr =
-          std::dynamic_pointer_cast<Model_ResultConstruction>(context());
-        if (aConstr.get()) {
-            return true;
-        }
-        // for the whole feature, a feature object
-        FeaturePtr aFeat = contextFeature();
-        if (aFeat.get())
+        if (myRef.value().get())
           return true;
+        // check that this is on open of document, so, results are not initialized yet
+        TDF_Label aRefLab = myRef.myRef->Get();
+        if (aRefLab.IsNull() || !owner().get())
+          return false;
+        std::shared_ptr<Model_Document> aMyDoc =
+          std::dynamic_pointer_cast<Model_Document>(owner()->document());
+        if (!aMyDoc.get())
+          return false;
+        // check at least the feature exists
+        return aMyDoc->featureByLab(aRefLab).get() != NULL;
       }
     }
   }