X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_SelectionMgr.cpp;h=b0d22089f8c3da6c6c7fe48836be2822bbe9225d;hb=6958dab7cbbaf443a39b04a609c5f33573c73f9e;hp=2d37228bae86492e1b38b9abf6090d41c8075e50;hpb=cd9217d7e87997ec8bc150a6d8c389e742ca0f84;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_SelectionMgr.cpp b/src/XGUI/XGUI_SelectionMgr.cpp index 2d37228ba..b0d22089f 100644 --- a/src/XGUI/XGUI_SelectionMgr.cpp +++ b/src/XGUI/XGUI_SelectionMgr.cpp @@ -1,15 +1,18 @@ +// Copyright (C) 2014-20xx CEA/DEN, EDF R&D --> + #include "XGUI_SelectionMgr.h" #include "XGUI_Workshop.h" -#include "XGUI_MainWindow.h" #include "XGUI_ObjectsBrowser.h" #include "XGUI_SalomeConnector.h" #include "XGUI_ViewerProxy.h" #include "XGUI_Displayer.h" #include "XGUI_Selection.h" +#include + #include -#include +#include #include #include #include @@ -37,10 +40,27 @@ void XGUI_SelectionMgr::connectViewers() connect(myWorkshop->viewer(), SIGNAL(selectionChanged()), this, SLOT(onViewerSelection())); } +//************************************************************** +void XGUI_SelectionMgr::setSelectedOwners(const SelectMgr_IndexedMapOfOwner& theSelectedOwners, + bool isUpdateViewer) +{ + SelectMgr_IndexedMapOfOwner aSelectedOwners; + selection()->selectedOwners(aSelectedOwners); + + Handle(AIS_InteractiveContext) aContext = myWorkshop->viewer()->AISContext(); + for (Standard_Integer i = 1, n = theSelectedOwners.Extent(); i <= n; i++) { + Handle(SelectMgr_EntityOwner) anOwner = theSelectedOwners(i); + if (aSelectedOwners.FindIndex(anOwner) > 0) + continue; + + aContext->AddOrRemoveSelected(anOwner, isUpdateViewer); + } +} + //************************************************************** void XGUI_SelectionMgr::onObjectBrowserSelection() { - QList aObjects = myWorkshop->objectBrowser()->selectedObjects(); + QObjectPtrList aObjects = myWorkshop->objectBrowser()->selectedObjects(); XGUI_Displayer* aDisplayer = myWorkshop->displayer(); aDisplayer->setSelected(aObjects); emit selectionChanged(); @@ -49,7 +69,7 @@ void XGUI_SelectionMgr::onObjectBrowserSelection() //************************************************************** void XGUI_SelectionMgr::onViewerSelection() { - QList aFeatures; + QObjectPtrList aFeatures; Handle(AIS_InteractiveContext) aContext = myWorkshop->viewer()->AISContext(); for (aContext->InitSelected(); aContext->MoreSelected(); aContext->NextSelected()) { Handle(AIS_InteractiveObject) anIO = aContext->SelectedInteractive();