]> SALOME platform Git repositories - modules/shaper.git/blob - src/XGUI/XGUI_ModuleConnector.cpp
Salome HOME
ab9991d503365ecb453e9c9b020e00e6e68d74bd
[modules/shaper.git] / src / XGUI / XGUI_ModuleConnector.cpp
1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D -->
2
3 // File:        XGUI_ModuleConnector.cpp
4 // Created:     3 June 2014
5 // Author:      Vitaly Smetannikov
6
7 #include "XGUI_ModuleConnector.h"
8 #include "XGUI_Workshop.h"
9 #include "XGUI_ViewerProxy.h"
10 #include "XGUI_SelectionMgr.h"
11 #include "XGUI_Selection.h"
12 #include "XGUI_OperationMgr.h"
13 #include "XGUI_Displayer.h"
14 #include "XGUI_PropertyPanel.h"
15
16 #include <AIS_Shape.hxx>
17
18
19 XGUI_ModuleConnector::XGUI_ModuleConnector(XGUI_Workshop* theWorkshop)
20     : ModuleBase_IWorkshop(theWorkshop),
21       myWorkshop(theWorkshop)
22 {
23   XGUI_SelectionMgr* aSelector = myWorkshop->selector();
24   connect(aSelector, SIGNAL(selectionChanged()), this, SIGNAL(selectionChanged()));
25   
26   XGUI_OperationMgr* anOperationMgr = myWorkshop->operationMgr();
27
28   //myDocumentShapeFilter = new ModuleBase_ShapeDocumentFilter(this);
29 }
30
31 XGUI_ModuleConnector::~XGUI_ModuleConnector()
32 {
33   //myDocumentShapeFilter.Nullify();
34 }
35
36 ModuleBase_ISelection* XGUI_ModuleConnector::selection() const
37 {
38   return myWorkshop->selector()->selection();
39 }
40
41 ModuleBase_IModule* XGUI_ModuleConnector::module() const
42 {
43   return myWorkshop->module();
44 }
45
46 ModuleBase_IViewer* XGUI_ModuleConnector::viewer() const
47 {
48   return myWorkshop->viewer();
49 }
50
51 ModuleBase_IPropertyPanel* XGUI_ModuleConnector::propertyPanel() const
52 {
53   return myWorkshop->propertyPanel();
54 }
55
56 ModuleBase_Operation* XGUI_ModuleConnector::currentOperation() const
57 {
58   return myWorkshop->operationMgr()->currentOperation();
59 }
60
61
62 void XGUI_ModuleConnector::activateSubShapesSelection(const QIntList& theTypes)
63 {
64   XGUI_Displayer* aDisp = myWorkshop->displayer();
65   // Close context if it was opened in order to clear stsndard selection modes
66   //aDisp->closeLocalContexts(false);
67   //aDisp->openLocalContext();
68   // Convert shape types to selection types
69   QIntList aModes;
70   foreach(int aType, theTypes) {
71     aModes.append(AIS_Shape::SelectionMode((TopAbs_ShapeEnum)aType));
72   }
73   aDisp->activateObjects(aModes);
74   //TODO: We have to open Local context because at neutral point filters don't work (bug 25340)
75   //aDisp->addSelectionFilter(myDocumentShapeFilter);
76 }
77
78 void XGUI_ModuleConnector::deactivateSubShapesSelection()
79 {
80   XGUI_Displayer* aDisp = myWorkshop->displayer();
81   // Clear selection modes
82   QIntList aModes;
83   aDisp->activateObjects(aModes);
84   // The document limitation selection has to be only during operation
85   //aDisp->removeSelectionFilter(myDocumentShapeFilter);
86   //aDisp->closeLocalContexts(false);
87 }
88
89 AISObjectPtr XGUI_ModuleConnector::findPresentation(const ObjectPtr& theObject) const
90 {
91   XGUI_Displayer* aDisp = myWorkshop->displayer();
92   return aDisp->getAISObject(theObject);
93 }
94
95 ObjectPtr XGUI_ModuleConnector::findPresentedObject(const AISObjectPtr& theAIS) const
96 {
97   XGUI_Displayer* aDisp = myWorkshop->displayer();
98   return aDisp->getObject(theAIS);
99 }
100
101 void XGUI_ModuleConnector::setSelected(const QObjectPtrList& theFeatures)
102 {
103   XGUI_Displayer* aDisp = myWorkshop->displayer();
104   aDisp->setSelected(theFeatures);
105 }
106
107 bool XGUI_ModuleConnector::canStartOperation(QString theId)
108 {
109   return myWorkshop->operationMgr()->canStartOperation(theId);
110 }
111