Salome HOME
Merge from BR_WIN_INDUS_514 04/10/2010 V5_1_5a1
authorvsr <vsr@opencascade.com>
Mon, 4 Oct 2010 14:16:14 +0000 (14:16 +0000)
committervsr <vsr@opencascade.com>
Mon, 4 Oct 2010 14:16:14 +0000 (14:16 +0000)
src/SMESHGUI/SMESHGUI_MeshInfosDlg.cxx
src/SMESH_I/SMESH_Group_i.hxx
src/SMESH_I/SMESH_Mesh_i.cxx

index 01ba222..40def53 100644 (file)
@@ -141,7 +141,9 @@ SMESHGUI_MeshInfosDlg::SMESHGUI_MeshInfosDlg(SMESHGUI* theModule):
 
   // buttons --> OK and Help buttons
   myOkBtn = new QPushButton(tr("SMESH_BUT_OK" ), myButtonsGroup);
-  myOkBtn->setAutoDefault(true); myOkBtn->setDefault(true);
+  myOkBtn->setAutoDefault(true);
+  myOkBtn->setDefault(true);
+  myOkBtn->setFocus();
   myHelpBtn = new QPushButton(tr("SMESH_BUT_HELP" ), myButtonsGroup);
   myHelpBtn->setAutoDefault(true);
 
index 60d61f6..3b1b08e 100644 (file)
@@ -98,7 +98,7 @@ private:
   int myLocalID;
 
   void changeLocalId(int localId) { myLocalID = localId; }
-  friend void SMESH_Mesh_i::CheckGeomGroupModif();
+  friend class SMESH_Mesh_i;
 };
 
 // ======
index 68adc8e..bb8c8b4 100644 (file)
@@ -121,24 +121,27 @@ SMESH_Mesh_i::~SMESH_Mesh_i()
 {
   INFOS("~SMESH_Mesh_i");
 
+#ifdef WITHGENERICOBJ
   // destroy groups
   map<int, SMESH::SMESH_GroupBase_ptr>::iterator itGr;
   for (itGr = _mapGroups.begin(); itGr != _mapGroups.end(); itGr++) {
+    if ( CORBA::is_nil( itGr->second ))
+      continue;
     SMESH_GroupBase_i* aGroup = dynamic_cast<SMESH_GroupBase_i*>(SMESH_Gen_i::GetServant(itGr->second).in());
     if (aGroup) {
       // this method is called from destructor of group (PAL6331)
       //_impl->RemoveGroup( aGroup->GetLocalID() );
-#ifdef WITHGENERICOBJ
+      aGroup->myMeshServant = 0;
       aGroup->Destroy();
-#endif
     }
   }
   _mapGroups.clear();
 
-#ifdef WITHGENERICOBJ
   // destroy submeshes
   map<int, SMESH::SMESH_subMesh_ptr>::iterator itSM;
   for ( itSM = _mapSubMeshIor.begin(); itSM != _mapSubMeshIor.end(); itSM++ ) {
+    if ( CORBA::is_nil( itSM->second ))
+      continue;
     SMESH_subMesh_i* aSubMesh = dynamic_cast<SMESH_subMesh_i*>(SMESH_Gen_i::GetServant(itSM->second).in());
     if (aSubMesh) {
       aSubMesh->Destroy();
@@ -149,6 +152,8 @@ SMESH_Mesh_i::~SMESH_Mesh_i()
   // destroy hypotheses
   map<int, SMESH::SMESH_Hypothesis_ptr>::iterator itH;
   for ( itH = _mapHypo.begin(); itH != _mapHypo.end(); itH++ ) {
+    if ( CORBA::is_nil( itH->second ))
+      continue;
     SMESH_Hypothesis_i* aHypo = dynamic_cast<SMESH_Hypothesis_i*>(SMESH_Gen_i::GetServant(itH->second).in());
     if (aHypo) {
       aHypo->Destroy();