From 5e337ede0d2247b347814366899cf09e71393dab Mon Sep 17 00:00:00 2001 From: eap Date: Thu, 28 Mar 2019 18:22:44 +0300 Subject: [PATCH] #16755 [CEA 16749] Merge nodes generates fatal error if selection is disabled --- src/SMESHGUI/SMESHGUI_MergeDlg.cxx | 16 +++++++++++++++- src/SMESH_I/SMESH_PythonDump.cxx | 4 ++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/SMESHGUI/SMESHGUI_MergeDlg.cxx b/src/SMESHGUI/SMESHGUI_MergeDlg.cxx index f7977d196..b269e2a47 100644 --- a/src/SMESHGUI/SMESHGUI_MergeDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_MergeDlg.cxx @@ -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(); diff --git a/src/SMESH_I/SMESH_PythonDump.cxx b/src/SMESH_I/SMESH_PythonDump.cxx index aa35dc0a5..5c9163bf4 100644 --- a/src/SMESH_I/SMESH_PythonDump.cxx +++ b/src/SMESH_I/SMESH_PythonDump.cxx @@ -1009,9 +1009,9 @@ TCollection_AsciiString SMESH_Gen_i::DumpPython_impl lines.push_back( aSMESHGen + " = smeshBuilder.New()" ); if ( isPublished ) - optionalComment = helper + "#"; + optionalComment = "#"; lines.push_back( optionalComment + aSMESHGen + ".SetEnablePublish( False ) # Set to False to avoid publish in study if not needed or in some particular situations:" ); - lines.push_back( " # multiples meshes built in parallel, complex and numerous mesh edition (performance)" ); + lines.push_back( " # multiples meshes built in parallel, complex and numerous mesh edition (performance)\n" ); lines.push_back( helper + "aFilterManager = " + aSMESHGen + ".CreateFilterManager()" ); lines.push_back( helper + "aMeasurements = " + aSMESHGen + ".CreateMeasurements()" ); -- 2.30.2