Salome HOME
Issue #637: Create visualization properties at Workshop constructor
[modules/shaper.git] / src / Model / Model_AttributeSelection.cpp
index af2ca84621c2ea506c2d2358e5b67fc01ac2c24d..852bba22736a200a04c2c042783a8d150a887270 100644 (file)
@@ -103,7 +103,10 @@ void Model_AttributeSelection::setValue(const ResultPtr& theContext,
   }
   if (theContext->groupName() == ModelAPI_ResultBody::group()) {
     // do not select the whole shape for body:it is already must be in the data framework
-    if (theContext->shape().get() && theContext->shape()->isEqual(theSubShape)) {
+    // equal and null selected objects mean the same: object is equal to context,
+    // TODO: synchronize with GUI later that it must be null always
+    if (theContext->shape().get() && 
+        (theContext->shape()->isEqual(theSubShape) || !theSubShape.get())) {
       aSelLab.ForgetAllAttributes(true);
       TDataStd_UAttribute::Set(aSelLab, kSIMPLE_REF_ID);
     } else {
@@ -174,8 +177,7 @@ bool Model_AttributeSelection::isInitialized()
       TDF_Label aSelLab = selectionLabel();
       if (aSelLab.IsAttribute(kSIMPLE_REF_ID)) { // it is just reference to shape, not sub-shape
         ResultPtr aContext = context();
-        if (!aContext.get()) 
-          return false;
+        return aContext.get();
       }
       if (aSelLab.IsAttribute(kCONSTUCTION_SIMPLE_REF_ID)) { // it is just reference to construction, nothing is in value
           return true;