X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_SelectionMgr.cpp;h=481db73366a3a4f06714ef767a03a414fbefd2fa;hb=db1bdf5481826c868b2c92c6cbc9afe8c5ad337c;hp=9f830a74ec5757257915168ab59afcb277ad6e58;hpb=aee13db814508b4899bf67f4530d4831c0ddc499;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_SelectionMgr.cpp b/src/XGUI/XGUI_SelectionMgr.cpp index 9f830a74e..481db7336 100644 --- a/src/XGUI/XGUI_SelectionMgr.cpp +++ b/src/XGUI/XGUI_SelectionMgr.cpp @@ -6,21 +6,26 @@ #include "XGUI_SalomeConnector.h" #include "XGUI_ViewerProxy.h" #include "XGUI_Displayer.h" +#include "XGUI_Selection.h" #include #include #include #include +#include +#include XGUI_SelectionMgr::XGUI_SelectionMgr(XGUI_Workshop* theParent) : QObject(theParent), myWorkshop(theParent) { + mySelection = new XGUI_Selection(myWorkshop); } XGUI_SelectionMgr::~XGUI_SelectionMgr() { + delete mySelection; } //************************************************************** @@ -37,24 +42,35 @@ void XGUI_SelectionMgr::connectViewers() //************************************************************** void XGUI_SelectionMgr::onObjectBrowserSelection() { - QFeatureList aFeatures = selectedFeatures(); + QList aObjects = myWorkshop->objectBrowser()->selectedObjects(); + QResultList aResults; + foreach(ObjectPtr aObject, aObjects) { + ResultPtr aRes = boost::dynamic_pointer_cast(aObject); + if (aRes) + aResults.append(aRes); + } XGUI_Displayer* aDisplayer = myWorkshop->displayer(); - aDisplayer->setSelected(aFeatures); - + aDisplayer->setSelected(aResults); emit selectionChanged(); } //************************************************************** void XGUI_SelectionMgr::onViewerSelection() { - XGUI_Displayer* aDisplayer = myWorkshop->displayer(); - QFeatureList aFeatures = aDisplayer->selectedFeatures(); - myWorkshop->objectBrowser()->setFeaturesSelected(aFeatures); + QList aFeatures; + Handle(AIS_InteractiveContext) aContext = myWorkshop->viewer()->AISContext(); + for (aContext->InitSelected(); aContext->MoreSelected(); aContext->NextSelected()) { + Handle(AIS_InteractiveObject) anIO = aContext->SelectedInteractive(); + ObjectPtr aResult = myWorkshop->displayer()->getObject(anIO); + if (aResult) + aFeatures.append(aResult); + } + myWorkshop->objectBrowser()->setObjectsSelected(aFeatures); emit selectionChanged(); } //************************************************************** -QFeatureList XGUI_SelectionMgr::selectedFeatures() const +/*QFeatureList XGUI_SelectionMgr::selectedFeatures() const { return myWorkshop->objectBrowser()->selectedFeatures(); } @@ -84,4 +100,4 @@ void XGUI_SelectionMgr::selectedShapes(NCollection_List& theList) if (!aShape.IsNull()) theList.Append(aShape); } -} +}*/