From ce575dc0b923a57848a5d3c200e78c114340491c Mon Sep 17 00:00:00 2001 From: mzn Date: Thu, 28 Jul 2005 14:48:19 +0000 Subject: [PATCH] Fix for bug IPAL9582 ( 3.0.0: Crash after trying create elements of a mesh on non-existing nodes ). --- src/SMESHGUI/SMESHGUI_AddMeshElementDlg.cxx | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/SMESHGUI/SMESHGUI_AddMeshElementDlg.cxx b/src/SMESHGUI/SMESHGUI_AddMeshElementDlg.cxx index 823716a85..0915c3923 100644 --- a/src/SMESHGUI/SMESHGUI_AddMeshElementDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_AddMeshElementDlg.cxx @@ -524,23 +524,30 @@ void SMESHGUI_AddMeshElementDlg::onTextChange (const QString& theNewText) TColStd_MapOfInteger newIndices; QStringList aListId = QStringList::split(" ", theNewText, false); + bool allOk = true; for (int i = 0; i < aListId.count(); i++) { if( const SMDS_MeshNode * n = aMesh->FindNode( aListId[ i ].toInt() ) ) { newIndices.Add( n->GetID() ); myNbOkNodes++; } + else + allOk = false; } mySelector->AddOrRemoveIndex( myActor->getIO(), newIndices, false ); if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) aViewWindow->highlight( myActor->getIO(), true, true ); - bool aNodesOK = false; - if (myIsPoly && myElementType == SMDSAbs_Face && aListId.count() >=3 ){ - myNbOkNodes = aListId.count(); - aNodesOK = true; - } + myNbOkNodes = ( allOk && myNbNodes == aListId.count() ); + + if (myIsPoly) + { + if ( !allOk || myElementType != SMDSAbs_Face || aListId.count() < 3 ) + myNbOkNodes = 0; + else + myNbOkNodes = aListId.count(); + } } if(myNbOkNodes) { -- 2.39.2