Bug 19000: problem with local selection on multiple shapes.

This commit is contained in:
jfa 2008-07-11 08:40:15 +00:00
parent f22d540e00
commit d6ad74214c

View File

@ -100,6 +100,7 @@ void GEOMGUI_OCCSelector::getSelection( SUIT_DataOwnerPtrList& aList ) const
if (!bigShape.IsEqual(curBigShape)) if (!bigShape.IsEqual(curBigShape))
{ {
curBigShape = bigShape; curBigShape = bigShape;
subShapes.Clear();
TopExp::MapShapes(bigShape, subShapes); TopExp::MapShapes(bigShape, subShapes);
} }
index = subShapes.FindIndex(subShape); index = subShapes.FindIndex(subShape);
@ -213,7 +214,7 @@ void GEOMGUI_OCCSelector::setSelection( const SUIT_DataOwnerPtrList& aList )
#ifndef WNT #ifndef WNT
if ( indexesMap.IsBound( TCollection_AsciiString((char*)entry.latin1()))) if ( indexesMap.IsBound( TCollection_AsciiString((char*)entry.latin1())))
#else #else
if ( indexesMap.IsBound( (char*)entry.latin1())) if ( indexesMap.IsBound( (char*)entry.latin1()))
#endif #endif
{ {
TColStd_IndexedMapOfInteger& subIndexes = indexesMap.ChangeFind((char*)entry.latin1()); TColStd_IndexedMapOfInteger& subIndexes = indexesMap.ChangeFind((char*)entry.latin1());
@ -242,7 +243,7 @@ void GEOMGUI_OCCSelector::setSelection( const SUIT_DataOwnerPtrList& aList )
} }
// get all owners. Fill "entry - list_of_owners" map. // get all owners. Fill "entry - list_of_owners" map.
for ( AIS_ListIteratorOfListOfInteractive it( aDispList ); it.More(); it.Next() ) for (AIS_ListIteratorOfListOfInteractive it (aDispList); it.More(); it.Next())
{ {
Handle(AIS_InteractiveObject) io = it.Value(); Handle(AIS_InteractiveObject) io = it.Value();
QString entryStr = entry( io ); QString entryStr = entry( io );
@ -272,6 +273,7 @@ void GEOMGUI_OCCSelector::setSelection( const SUIT_DataOwnerPtrList& aList )
{ {
isLocal = true; isLocal = true;
TopoDS_Shape shape = aisShape->Shape(); TopoDS_Shape shape = aisShape->Shape();
aMapOfShapes.Clear();
TopExp::MapShapes(shape, aMapOfShapes); TopExp::MapShapes(shape, aMapOfShapes);
} }
} }