1 #include "XGUI_SelectionMgr.h"
3 #include "XGUI_Workshop.h"
4 #include "XGUI_MainWindow.h"
5 #include "XGUI_ObjectsBrowser.h"
6 #include "XGUI_SalomeConnector.h"
7 #include "XGUI_ViewerProxy.h"
8 #include "XGUI_Displayer.h"
9 #include "XGUI_Selection.h"
11 #include <ModelAPI_Feature.h>
12 #include <ModelAPI_PluginManager.h>
13 #include <ModelAPI_AttributeDocRef.h>
14 #include <ModelAPI_Data.h>
18 XGUI_SelectionMgr::XGUI_SelectionMgr(XGUI_Workshop* theParent) :
19 QObject(theParent), myWorkshop(theParent)
21 mySelection = new XGUI_Selection(myWorkshop);
24 XGUI_SelectionMgr::~XGUI_SelectionMgr()
29 //**************************************************************
30 void XGUI_SelectionMgr::connectViewers()
32 connect(myWorkshop->objectBrowser(), SIGNAL(selectionChanged()),
33 this, SLOT(onObjectBrowserSelection()));
35 //Connect to other viewers
36 connect(myWorkshop->viewer(), SIGNAL(selectionChanged()),
37 this, SLOT(onViewerSelection()));
40 //**************************************************************
41 void XGUI_SelectionMgr::onObjectBrowserSelection()
43 QFeatureList aFeatures = myWorkshop->objectBrowser()->selectedFeatures();
44 XGUI_Displayer* aDisplayer = myWorkshop->displayer();
45 aDisplayer->setSelected(aFeatures);
46 emit selectionChanged();
49 //**************************************************************
50 void XGUI_SelectionMgr::onViewerSelection()
52 QFeatureList aFeatures;
53 Handle(AIS_InteractiveContext) aContext = myWorkshop->viewer()->AISContext();
54 for (aContext->InitSelected(); aContext->MoreSelected(); aContext->NextSelected()) {
55 Handle(AIS_InteractiveObject) anIO = aContext->SelectedInteractive();
56 FeaturePtr aFeature = myWorkshop->displayer()->getFeature(anIO);
58 aFeatures.append(aFeature);
60 myWorkshop->objectBrowser()->setFeaturesSelected(aFeatures);
61 emit selectionChanged();
64 //**************************************************************
65 /*QFeatureList XGUI_SelectionMgr::selectedFeatures() const
67 return myWorkshop->objectBrowser()->selectedFeatures();
70 //**************************************************************
71 QModelIndexList XGUI_SelectionMgr::selectedIndexes() const
73 return myWorkshop->objectBrowser()->selectedIndexes();
76 //**************************************************************
77 void XGUI_SelectionMgr::selectedAISObjects(AIS_ListOfInteractive& theList) const
79 Handle(AIS_InteractiveContext) aContext = myWorkshop->viewer()->AISContext();
81 for (aContext->InitSelected(); aContext->MoreSelected(); aContext->NextSelected())
82 theList.Append(aContext->SelectedInteractive());
85 //**************************************************************
86 void XGUI_SelectionMgr::selectedShapes(NCollection_List<TopoDS_Shape>& theList) const
89 Handle(AIS_InteractiveContext) aContext = myWorkshop->viewer()->AISContext();
90 for (aContext->InitSelected(); aContext->MoreSelected(); aContext->NextSelected()) {
91 TopoDS_Shape aShape = aContext->SelectedShape();
93 theList.Append(aShape);