Salome HOME
PAL9524 - unassign a hypothesis when Edit/Delete called for it
[modules/smesh.git] / src / SMESHGUI / SMESHGUI.cxx
index 29840349b28f6654539ff2c6590e6c2e39fef221..2b84e29dcf8fc02b7e6b22e525fa2461af2c69ff 100644 (file)
@@ -793,7 +793,7 @@ namespace{
        if(obj){
          SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_narrow( SMESH::SObjectToObject( obj ) );
          SMESH::SMESH_subMesh_var   aSubMesh = SMESH::SMESH_subMesh::_narrow( SMESH::SObjectToObject( obj ) );
-
+          QString objType = CheckTypeObject(IObject);
          if ( !aGroup->_is_nil() ) {                          // DELETE GROUP
            SMESH::SMESH_Mesh_var aMesh = aGroup->GetMesh();
            aMesh->RemoveGroup( aGroup );
@@ -802,6 +802,10 @@ namespace{
            SMESH::SMESH_Mesh_var aMesh = aSubMesh->GetFather();
            aMesh->RemoveSubMesh( aSubMesh );
          }
+         else if ( objType == "Hypothesis" || objType == "Algorithm" ) {// DELETE HYPOTHESIS
+            SMESH::RemoveHypothesisOrAlgorithmOnMesh(IObject);
+           aStudyBuilder->RemoveObjectWithChildren( obj );
+         }
          else {// default action: remove SObject from the study
            // san - it's no use opening a transaction here until UNDO/REDO is provided in SMESH
            //SUIT_Operation *op = new SALOMEGUI_ImportOperation(myActiveStudy);
@@ -3053,7 +3057,8 @@ void SMESHGUI::initialize( CAM_Application* app )
   // Display / Erase
   //-------------------------------------------------
   aClient = "($client in {'VTKViewer' 'ObjectBrowser'})";
-  QString aRule = aClient + " and " + aType + " and " + aSelCount;
+  QString anActiveVTK = QString("activeView = '%1'").arg(VTKViewer_Viewer::Type());
+  QString aRule = aClient + " and " + aType + " and " + aSelCount + " and " + anActiveVTK;
   popupMgr()->insert( action( 301 ), -1, -1 ); // DISPLAY
   popupMgr()->setRule( action( 301 ), aRule + "&&" + isNotEmpty + "&&" + isInvisible, true);