The selections of elements corrected.

This commit is contained in:
mzn 2005-06-24 12:42:50 +00:00
parent 783b5a717c
commit 81248260b7

View File

@ -698,9 +698,7 @@ void SMESHGUI_ExtrusionAlongPathDlg::onTextChange (const QString& theNewText)
QStringList aListId = QStringList::split(" ", theNewText, false); QStringList aListId = QStringList::split(" ", theNewText, false);
bool bOk; bool bOk;
const Handle(SALOME_InteractiveObject)& anIO = myMeshActor->getIO(); const Handle(SALOME_InteractiveObject)& anIO = myMeshActor->getIO();
TColStd_IndexedMapOfInteger selectedIndices;
TColStd_MapOfInteger newIndices; TColStd_MapOfInteger newIndices;
mySelector->GetIndex(anIO, selectedIndices);
for (int i = 0; i < aListId.count(); i++) { for (int i = 0; i < aListId.count(); i++) {
long ind = aListId[ i ].toLong(&bOk); long ind = aListId[ i ].toLong(&bOk);
if (bOk) { if (bOk) {
@ -709,19 +707,14 @@ void SMESHGUI_ExtrusionAlongPathDlg::onTextChange (const QString& theNewText)
// check also type of element // check also type of element
bool typeMatch = Elements1dRB->isChecked() && e->GetType() == SMDSAbs_Edge || bool typeMatch = Elements1dRB->isChecked() && e->GetType() == SMDSAbs_Edge ||
Elements2dRB->isChecked() && e->GetType() == SMDSAbs_Face; Elements2dRB->isChecked() && e->GetType() == SMDSAbs_Face;
if (typeMatch) { if (typeMatch)
if (selectedIndices.Add(e->GetID())) {
newIndices.Add(e->GetID()); newIndices.Add(e->GetID());
} }
} }
} }
} mySelector->AddOrRemoveIndex(anIO, newIndices, false);
}
if (newIndices.Extent() > 0) {
mySelector->AddOrRemoveIndex(anIO, newIndices, true);
myViewWindow->highlight( anIO, true, true ); myViewWindow->highlight( anIO, true, true );
} }
}
} else if (send == StartPointLineEdit && } else if (send == StartPointLineEdit &&
myEditCurrentArgument == StartPointLineEdit) { myEditCurrentArgument == StartPointLineEdit) {
if (!myPathMesh->_is_nil()) { if (!myPathMesh->_is_nil()) {
@ -742,19 +735,15 @@ void SMESHGUI_ExtrusionAlongPathDlg::onTextChange (const QString& theNewText)
const SMDS_MeshNode* n = aMesh->FindNode(ind); const SMDS_MeshNode* n = aMesh->FindNode(ind);
if (n) { if (n) {
//if (!mySelectionMgr->IsIndexSelected(aPathActor->getIO(), n->GetID())) { //if (!mySelectionMgr->IsIndexSelected(aPathActor->getIO(), n->GetID())) {
TColStd_IndexedMapOfInteger selectedIndices;
TColStd_MapOfInteger newIndices; TColStd_MapOfInteger newIndices;
mySelector->GetIndex(aPathActor->getIO(), selectedIndices);
if (selectedIndices.Add(n->GetID())) {
newIndices.Add(n->GetID()); newIndices.Add(n->GetID());
mySelector->AddOrRemoveIndex( aPathActor->getIO(), newIndices, true ); mySelector->AddOrRemoveIndex( aPathActor->getIO(), newIndices, false );
myViewWindow->highlight( aPathActor->getIO(), true, true ); myViewWindow->highlight( aPathActor->getIO(), true, true );
} }
} }
} }
} }
} }
}
} }
//================================================================================= //=================================================================================