Salome HOME
23514: EDF 16031 - SMESH freezes
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_GroupDlg.cxx
index c2575f14e533e0d8430a9fd72916ad07d5119ec8..0b2cbb975fc1fdd221592a962687deb4986afdd5 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2015  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -444,7 +444,6 @@ void SMESHGUI_GroupDlg::initDialog( bool create)
 
   /* Init selection */
   mySMESHGUI->SetActiveDialogBox(this);
-  mySMESHGUI->SetState(800);
 
   SalomeApp_Study* aStudy = dynamic_cast<SalomeApp_Study*>( mySMESHGUI->application()->activeStudy() );
   mySelectionMode = grpNoSelection;
@@ -936,7 +935,7 @@ bool SMESHGUI_GroupDlg::onApply()
   QStringList anEntryList;
 
   SMESH::SMESH_GroupBase_var resultGroup;
-  bool isCreation, isConversion = false;
+  bool isCreation = false, isConversion = false;
     
   SUIT_OverrideCursor wc;
 
@@ -1119,14 +1118,14 @@ bool SMESHGUI_GroupDlg::onApply()
   {
     if ( myFilter->_is_nil() ) return false;
 
-    if (CORBA::is_nil(myGroupOnFilter)) { // creation
+    if (CORBA::is_nil(myGroupOnFilter)) // creation
+    {
       if (myMesh->_is_nil())
         return false;
 
       myGroupOnFilter = myMesh->CreateGroupFromFilter(aType,
                                                       SMESH::toUtf8(myName->text()),
                                                       myFilter);
-
       resultGroup = SMESH::SMESH_GroupBase::_narrow( myGroupOnFilter );
       isCreation = true;
     }
@@ -1140,7 +1139,7 @@ bool SMESHGUI_GroupDlg::onApply()
     anIsOk = true;
   }
 
-  if( anIsOk )
+  if ( anIsOk )
   {
     SALOMEDS::Color aColor = getGroupColor();
     resultGroup->SetColor(aColor);
@@ -1609,6 +1608,8 @@ void SMESHGUI_GroupDlg::onSelectAll()
   mySortBtn->setEnabled    ( !noElemsModif );
   mySelectBox->setEnabled  ( !noElemsModif );
   myAllowElemsModif->setEnabled( !mySelectAll->isChecked() );
+  if ( noElemsModif ) mySMESHGUI->ResetState();
+  else                mySMESHGUI->SetState(800);
 
   int selMode     = mySelectionMode;
   mySelectionMode = grpNoSelection;
@@ -2332,9 +2333,9 @@ void SMESHGUI_GroupDlg::enterEvent (QEvent*)
     setEnabled(true);
     mySelectionMode = grpNoSelection;
     setSelectionMode(myTypeId);
-    //mySMESHGUI->SetActiveDialogBox((QDialog*)this);
     mySMESHGUI->SetActiveDialogBox(this);
-    mySMESHGUI->SetState(800);
+    if ( mySelectBox->isEnabled() ) mySMESHGUI->SetState(800);
+    else                            mySMESHGUI->ResetState();
   }
 }