Salome HOME
Merge branch 'V8_4_BR'
[modules/smesh.git] / src / SMESHGUI / SMESHGUI.cxx
index 54cd3a3a1b7d044e0b4dce10b0a9077a64175cb9..d3d701490518fa8c5dd5154da41c5ab8d86c198a 100644 (file)
@@ -1700,7 +1700,9 @@ namespace
     ActionControl.Bind( SMESHOp::OpOverConstrainedVolume, SMESH_Actor::eOverConstrainedVolume );
     ActionControl.Bind( SMESHOp::OpEqualVolume,           SMESH_Actor::eCoincidentElems3D );
 
-    return theReversed ? ActionControl.Find2( theID ) : ActionControl.Find1( theID );
+    if ( theReversed )
+      return ActionControl.IsBound2( theID ) ? ActionControl.Find2( theID ) : 0;
+    return   ActionControl.IsBound1( theID ) ? ActionControl.Find1( theID ) : 0;
   }
 
   void Control( int theCommandID )
@@ -1854,20 +1856,24 @@ void SMESHGUI::OnEditDelete()
   int objectCount = 0;
   QString aNameList;
   QString aParentComponent = QString::null;
-  Handle(SALOME_InteractiveObject) anIO;
+  
   for( SALOME_ListIteratorOfListIO anIt( selected ); anIt.More(); anIt.Next() )
   {
-    anIO = anIt.Value();
-    QString cur = anIO->getComponentDataType();
-    _PTR(SObject) aSO = aStudy->FindObjectID(anIO->getEntry());
+    Handle(SALOME_InteractiveObject) anIO = anIt.Value();
+    if ( anIO.IsNull() ) continue;
+    
+    QString father = "unknown";
+
+    _PTR(SObject) aSO = aStudy->FindObjectID( anIO->getEntry() );
     if (aSO) {
+      father = QString::fromStdString( aSO->GetFatherComponent()->ComponentDataType() );
       // check if object is reference
       _PTR(SObject) aRefSObj;
       aNameList.append("\n    - ");
       if ( aSO->ReferencedObject( aRefSObj ) ) {
         QString aRefName = QString::fromStdString ( aRefSObj->GetName() );
         aNameList.append( aRefName );
-        cur = QString::fromStdString ( aRefSObj->GetFatherComponent()->ComponentDataType() );
+        father = QString::fromStdString ( aRefSObj->GetFatherComponent()->ComponentDataType() );
       }
       else
         aNameList.append(anIO->getName());
@@ -1875,8 +1881,8 @@ void SMESHGUI::OnEditDelete()
     }
 
     if( aParentComponent.isNull() )
-      aParentComponent = cur;
-    else if( !aParentComponent.isEmpty() && aParentComponent!=cur )
+      aParentComponent = father;
+    else if( !aParentComponent.isEmpty() && aParentComponent!=father )
       aParentComponent = "";
   }