]> SALOME platform Git repositories - modules/smesh.git/blobdiff - src/SMESHGUI/SMESHGUI_ComputeDlg.cxx
Salome HOME
PAL16842 (Genertion of groups when a mesh is transformed)
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_ComputeDlg.cxx
index 1da473118b8aac2c69646271da5131bc5e6064f6..1dd9b63804ee3c161020178a942dc7dfc69c8a83 100644 (file)
@@ -331,7 +331,7 @@ namespace SMESH {
       CASE2TEXT( COMPERR_BAD_INPUT_MESH);
       CASE2TEXT( COMPERR_STD_EXCEPTION );
       CASE2TEXT( COMPERR_OCC_EXCEPTION );
-      CASE2TEXT( COMPERR_SLM_EXCEPTION );
+    case SMESH::COMPERR_SLM_EXCEPTION: break; // avoid double "Salome exception"
       CASE2TEXT( COMPERR_EXCEPTION     );
       CASE2TEXT( COMPERR_MEMORY_PB     );
       CASE2TEXT( COMPERR_BAD_SHAPE     );
@@ -806,7 +806,9 @@ void SMESHGUI_ComputeOp::startOperation()
     MemoryReserve aMemoryReserve;
     _PTR(SObject) aMeshSObj = SMESH::FindSObject(aMesh);
     myMainShape = aMesh->GetShapeToMesh();
-    if ( !myMainShape->_is_nil() && aMeshSObj )
+    if ( ((!myMainShape->_is_nil() && aMesh->HasShapeToMesh()) ||
+          (myMainShape->_is_nil() && !aMesh->HasShapeToMesh()))
+         && aMeshSObj )
     {
       myDlg->myMeshName->setText( aMeshSObj->GetName() );
       SMESH::SMESH_Gen_var gen = getSMESHGUI()->GetSMESHGen();
@@ -855,7 +857,6 @@ void SMESHGUI_ComputeOp::startOperation()
       {
         SMESH::ModifiedMesh(aMeshSObj, !computeFailed, aMesh->NbNodes() == 0);
         update( UF_ObjBrowser | UF_Model );
-        Sel->setSelectedObjects( selected );
 
         // SHOW MESH
         // NPAL16631: if ( getSMESHGUI()->automaticUpdate() )
@@ -879,6 +880,7 @@ void SMESHGUI_ComputeOp::startOperation()
             }
           }
         }
+        Sel->setSelectedObjects( selected );
       }
     }
   }
@@ -919,10 +921,20 @@ void SMESHGUI_ComputeOp::startOperation()
     myDlg->myBriefInfo->show();
     myDlg->myFullInfo->hide();
     myDlg->myErrorGroup->show();
-
+    
+    bool hasShape = aMesh->HasShapeToMesh();
+    if ( !hasShape )
+    {
+      myDlg->myPublishBtn->hide();
+      myDlg->myShowBtn->hide();
+    }
+    else
+    {
+      myDlg->myPublishBtn->show();
+      myDlg->myShowBtn->show();
+    }
     // fill table of errors
     tbl->setNumRows( anErrors->length() );
-    bool hasShape = aMesh->HasShapeToMesh();
     if ( !hasShape ) tbl->hideColumn( COL_SHAPE );
     else             tbl->showColumn( COL_SHAPE );
     tbl->setColumnWidth( COL_ERROR, 200 );