Salome HOME
Prevent exception at shape selection if no mesh was pre-selected
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_GroupDlg.cxx
index 4d7445df36f047f324a43d2e40df1bc07de1c05c..a83f360b5c664175e151c595341b5dc8699de69e 100644 (file)
@@ -797,7 +797,11 @@ void SMESHGUI_GroupDlg::onObjectSelectionChanged()
        SALOMEDS::SObject_var aGroupMainShapeSO = aStudy->FindObjectIOR( aStudy->ConvertObjectToIOR(aGroupMainShape) );
        // The mesh SObject
        SALOMEDS::SObject_var aMeshSO = aStudy->FindObjectIOR( aStudy->ConvertObjectToIOR(myMesh) );
        SALOMEDS::SObject_var aGroupMainShapeSO = aStudy->FindObjectIOR( aStudy->ConvertObjectToIOR(aGroupMainShape) );
        // The mesh SObject
        SALOMEDS::SObject_var aMeshSO = aStudy->FindObjectIOR( aStudy->ConvertObjectToIOR(myMesh) );
-       
+        if ( aMeshSO->_is_nil() ) {
+          myGeomGroup = GEOM::GEOM_Object::_nil();
+          busy = false;
+          return;
+        }
        SALOMEDS::SObject_var anObj, aRef;
        bool isRefOrSubShape = false;
        if ( aMeshSO->FindSubObject( 1, anObj ) &&  anObj->ReferencedObject( aRef )) {
        SALOMEDS::SObject_var anObj, aRef;
        bool isRefOrSubShape = false;
        if ( aMeshSO->FindSubObject( 1, anObj ) &&  anObj->ReferencedObject( aRef )) {
@@ -1342,6 +1346,7 @@ void SMESHGUI_GroupDlg::onClose()
 //=======================================================================
 void SMESHGUI_GroupDlg::onDeactivate()
 {
 //=======================================================================
 void SMESHGUI_GroupDlg::onDeactivate()
 {
+  mySMESHGUI->ResetState();
   setEnabled( false );
 }
 
   setEnabled( false );
 }
 
@@ -1356,6 +1361,8 @@ void SMESHGUI_GroupDlg::enterEvent( QEvent* )
     setEnabled( true );
     mySelectionMode = -1;
     setSelectionMode( myTypeId );
     setEnabled( true );
     mySelectionMode = -1;
     setSelectionMode( myTypeId );
+    mySMESHGUI->SetActiveDialogBox( (QDialog*)this ) ;
+    mySMESHGUI->SetState(800);
   }
 }
 
   }
 }