X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_MergeDlg.cxx;h=f5d5a0e7ffa0e0db08d9bcee2e3f024d77a57719;hb=c85f79dfcae99e7d2e339251ff51e07585bc52e4;hp=0b0858126c2f31aaff5624d23a422b4f6ee1899a;hpb=0a237be4b91b6db526b340c534f40a385d6d65ab;p=modules%2Fsmesh.git diff --git a/src/SMESHGUI/SMESHGUI_MergeDlg.cxx b/src/SMESHGUI/SMESHGUI_MergeDlg.cxx index 0b0858126..f5d5a0e7f 100644 --- a/src/SMESHGUI/SMESHGUI_MergeDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_MergeDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2020 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 @@ -1144,6 +1144,9 @@ void SMESHGUI_MergeDlg::SetEditCurrentArgument() //================================================================================= void SMESHGUI_MergeDlg::SelectionIntoArgument() { + if ( myIsBusy ) + return; + if (myEditCurrentArgument == (QWidget*)LineEditMesh) { QString aString = ""; @@ -1222,6 +1225,9 @@ void SMESHGUI_MergeDlg::SelectionIntoArgument() LineEditMesh->setText( aString ); + + myIsBusy = true; // here selection can change + if (myAction == MERGE_NODES) { SMESH::SetPointRepresentation(true); if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) @@ -1231,6 +1237,8 @@ void SMESHGUI_MergeDlg::SelectionIntoArgument() if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) aViewWindow->SetSelectionMode(CellSelection); + myIsBusy = false; + // process groups myGroups.clear(); ListExclude->clear(); @@ -1408,9 +1416,11 @@ void SMESHGUI_MergeDlg::onTypeChanged (int id) myIdPreview->SetPointsLabeled(false); SMESH::SetPointRepresentation(false); + myIsBusy = true; // keep currently selected mesh if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) aViewWindow->SetSelectionMode(ActorSelection); mySelectionMgr->clearFilters(); + myIsBusy = false; GroupCoincident->hide(); GroupEdit->hide(); @@ -1424,6 +1434,7 @@ void SMESHGUI_MergeDlg::onTypeChanged (int id) myMeshOrSubMeshOrGroupFilter = new SMESH_TypeFilter (SMESH::IDSOURCE); + myIsBusy = true; // keep currently selected mesh if (myAction == MERGE_NODES) { SMESH::SetPointRepresentation(true); if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) @@ -1435,11 +1446,14 @@ void SMESHGUI_MergeDlg::onTypeChanged (int id) if( mySelector->IsSelectionEnabled() ) aViewWindow->SetSelectionMode(CellSelection); } + myIsBusy = false; GroupCoincident->show(); GroupEdit->show(); break; } - SelectionIntoArgument(); + + if ( myMesh->_is_nil() ) + SelectionIntoArgument(); updateControls();