Salome HOME
Fix for problem: Mesh - preferences: automatic update does not work.
[modules/smesh.git] / src / SMESHGUI / SMESHGUI.cxx
index 1a469b7a85bfb032f53196c06c828f64d62185ec..7fe7f5fafe8e43bf4a37cb31c74fdc07e30d8740 100644 (file)
@@ -655,7 +655,8 @@ namespace{
     return RefType;
   }
 
-  void OnEditDelete()
+
+  void SMESHGUI::OnEditDelete()
   {
     // VSR 17/11/04: check if all objects selected belong to SMESH component --> start
     SalomeApp_SelectionMgr* aSel = SMESHGUI::selectionMgr();
@@ -703,6 +704,13 @@ namespace{
       if(IObject->hasEntry()){
        _PTR(SObject) SO = aStudy->FindObjectID(IObject->getEntry());
 
+       // disable removal of "SMESH" component object
+       if(SO->FindAttribute(anAttr, "AttributeIOR")){
+         anIOR = anAttr;
+         if ( !strcmp( (char*)anIOR->Value().c_str(), engineIOR().latin1() ) )
+           continue;
+       }
+
        /* Erase child graphical objects */
        _PTR(ChildIterator) it = aStudy->NewChildIterator(SO);
        for(it->InitEx(true); it->More(); it->Next()){
@@ -1053,7 +1061,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
   switch (theCommandID)        {
   case 33:                                     // DELETE
     if(checkLock(aStudy)) break;
-    ::OnEditDelete();
+    OnEditDelete();
     break;
 
   case 113:                                    // IMPORT
@@ -1294,6 +1302,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
              SMESH::FitAll();
            }
          }
+         SMESH::RepaintCurrentView();
        }
       }else{
        SUIT_MessageBox::warn1(desktop(),
@@ -2322,6 +2331,7 @@ void SMESHGUI::initialize( CAM_Application* app )
   createSMESHAction(  220, "ALL" );
   createSMESHAction( 1100, "EDIT_HYPO" );
   createSMESHAction( 1101, "RENAME" );
+  createSMESHAction( 1102, "UNASSIGN" );
   createSMESHAction( 9010, "NUM_NODES", "", 0, true );
   createSMESHAction( 9011, "NUM_ELEMENTS", "", 0, true );
   createSMESHAction( 1131, "DISPMODE" );
@@ -2557,9 +2567,9 @@ void SMESHGUI::initialize( CAM_Application* app )
   createPopupItem( 801, OB, mesh );                        // CREATE_GROUP
   createPopupItem( 802, OB, subMesh );                     // CONSTRUCT_GROUP
   popupMgr()->insert( separator(), -1, 0 );
-  createPopupItem( 1100, OB, hypo );                       // EDIT HYPOTHESIS
-  createPopupItem( 1102, OB, hyp_alg, "&& hasReference" ); // REMOVE HYPOTHESIS / ALGORITHMS
-  createPopupItem( 1101, OB, mesh_group + " " + hyp_alg ); // RENAME
+  createPopupItem( 1100, OB, hypo, "&& $hasReference={false}" );   // EDIT HYPOTHESIS
+  createPopupItem( 1102, OB, hyp_alg ); // REMOVE HYPOTHESIS / ALGORITHMS
+  createPopupItem( 1101, OB, mesh_group + " " + hyp_alg, "&& $hasReference={false}" ); // RENAME
   popupMgr()->insert( separator(), -1, 0 );
   createPopupItem( 125, OB, mesh );                        // EXPORT_MED
   createPopupItem( 126, OB, mesh );                        // EXPORT_UNV
@@ -2601,7 +2611,7 @@ void SMESHGUI::initialize( CAM_Application* app )
   anId = popupMgr()->insert( tr( "MEN_NUM" ), -1, -1 );
   
   popupMgr()->insert( action( 9010 ), anId, -1 );
-  popupMgr()->setRule( action( 9010 ), aMeshInVTK + "&& isVisible &&" + hasNodes, true );//@
+  popupMgr()->setRule( action( 9010 ), aMeshInVTK + "&& isVisible &&" + hasNodes, true );
   popupMgr()->setRule( action( 9010 ), "{'Point'} in labeledTypes", false );
 
   popupMgr()->insert( action( 9011 ), anId, -1 );