X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_Selection.cpp;h=7ef11f4f66cb2d08724364aaedf882d93e04fffa;hb=61da4e89d2ec63daa429d304f928482a0e6fa0b7;hp=d39e31359aff576cb559a684bc691afbb432a15c;hpb=cd9217d7e87997ec8bc150a6d8c389e742ca0f84;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_Selection.cpp b/src/XGUI/XGUI_Selection.cpp index d39e31359..7ef11f4f6 100644 --- a/src/XGUI/XGUI_Selection.cpp +++ b/src/XGUI/XGUI_Selection.cpp @@ -19,10 +19,10 @@ XGUI_Selection::XGUI_Selection(XGUI_Workshop* theWorkshop) { } -std::list XGUI_Selection::getSelected(int theShapeTypeToSkip) const +QList XGUI_Selection::getSelected(int theShapeTypeToSkip) const { std::set aPrsFeatures; - std::list aPresentations; + QList aPresentations; XGUI_Displayer* aDisplayer = myWorkshop->displayer(); Handle(AIS_InteractiveContext) aContext = myWorkshop->viewer()->AISContext(); @@ -44,15 +44,15 @@ std::list XGUI_Selection::getSelected(int theShapeTypeToSk } Handle(SelectMgr_EntityOwner) anOwner = aContext->SelectedOwner(); aPrs.setOwner(anOwner); - aPresentations.push_back(aPrs); + aPresentations.append(aPrs); } return aPresentations; } -std::list XGUI_Selection::getHighlighted(int theShapeTypeToSkip) const +QList XGUI_Selection::getHighlighted(int theShapeTypeToSkip) const { std::set aPrsFeatures; - std::list aPresentations; + QList aPresentations; XGUI_Displayer* aDisplayer = myWorkshop->displayer(); Handle(AIS_InteractiveContext) aContext = myWorkshop->viewer()->AISContext(); @@ -111,13 +111,20 @@ void XGUI_Selection::selectedAISObjects(AIS_ListOfInteractive& theList) const } //************************************************************** -void XGUI_Selection::selectedShapes(NCollection_List& theList) const +void XGUI_Selection::selectedShapes(NCollection_List& theList, + std::list& theOwners) const { theList.Clear(); Handle(AIS_InteractiveContext) aContext = myWorkshop->viewer()->AISContext(); for (aContext->InitSelected(); aContext->MoreSelected(); aContext->NextSelected()) { TopoDS_Shape aShape = aContext->SelectedShape(); - if (!aShape.IsNull()) + if (!aShape.IsNull()) { theList.Append(aShape); + Handle(SelectMgr_EntityOwner) aEO = aContext->SelectedOwner(); + Handle(AIS_InteractiveObject) anObj = + Handle(AIS_InteractiveObject)::DownCast(aEO->Selectable()); + ObjectPtr anObject = myWorkshop->displayer()->getObject(anObj); + theOwners.push_back(anObject); + } } }