]> SALOME platform Git repositories - modules/geom.git/blobdiff - src/MeasureGUI/MeasureGUI_CreateDimensionDlg.cxx
Salome HOME
Fix remarks to the "0021854: EDF 2320 GEOM : Add persistent dimensions" issue:
[modules/geom.git] / src / MeasureGUI / MeasureGUI_CreateDimensionDlg.cxx
index 63e24f9220de4c7c18c62115b822a3a611b7885d..199545066471703da5f520e3a6a4d8fc6091ce54 100644 (file)
@@ -297,11 +297,29 @@ void MeasureGUI_CreateDimensionDlg::SelectionIntoArgument()
     return;
   }
 
+  GEOM::GeomObjPtr aSelected = getSelected( mySelectionModes );
+  if ( aSelected.isNull() )
+  {
+    ActiveArgs()->SelectionIntoArguments( GEOM::GeomObjPtr() );
+    return;
+  }
+
+  GEOM::GeomObjPtr aSelectedMain = 
+    !aSelected->IsMainShape() 
+      ? aSelected->GetMainShape() 
+      : GEOM::GeomObjPtr();
+
+  if ( myParentObj != aSelected && myParentObj != aSelectedMain )
+  {
+    ActiveArgs()->SelectionIntoArguments( GEOM::GeomObjPtr() );
+    return;
+  }
+
   StopLocalEditing();
 
   erasePreview();
 
-  ActiveArgs()->SelectionIntoArguments( getSelected( mySelectionModes ) );
+  ActiveArgs()->SelectionIntoArguments( aSelected );
 }
 
 //=================================================================================
@@ -372,7 +390,9 @@ bool MeasureGUI_CreateDimensionDlg::ClickOnApply()
 
   if ( !isApplyAndClose() )
   {
+    emit applyClicked();
     Init();
+    ConstructTypeChanged( getConstructorId() );
   }
 
   return true;