Fix for bug IPAL9582 ( 3.0.0: Crash after trying create elements of a mesh on non-existing nodes ).

This commit is contained in:
mzn 2005-07-28 14:48:19 +00:00
parent 8c7ffa49a6
commit ce575dc0b9

View File

@ -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) {