1 #ifndef PartSet_Module_H
2 #define PartSet_Module_H
6 #include <XGUI_Module.h>
7 #include <XGUI_Command.h>
14 #include <boost/shared_ptr.hpp>
18 class PartSet_Listener;
19 class ModelAPI_Feature;
22 class PARTSET_EXPORT PartSet_Module: public QObject, public XGUI_Module
27 PartSet_Module(XGUI_Workshop* theWshop);
28 virtual ~PartSet_Module();
30 /// Returns the module workshop
31 /// \returns a workshop instance
32 XGUI_Workshop* workshop() const;
34 virtual void createFeatures();
35 virtual void featureCreated(QAction* theFeature);
36 virtual QStringList nestedFeatures(QString theFeature);
37 std::string featureFile(const std::string&);
39 /// Creates an operation and send it to loop
40 /// \param theCmdId the operation name
41 virtual void launchOperation(const QString& theCmdId);
43 /// Displays or erase the current operation preview, if it has it.
44 /// \param theFeature the feature instance to be displayed
45 /// \param isDisplay the state whether the presentation should be displayed or erased
46 /// \param isUpdateViewer the flag whether the viewer should be updated
47 void visualizePreview(boost::shared_ptr<ModelAPI_Feature> theFeature, bool isDisplay,
48 const bool isUpdateViewer = true);
50 /// Activates the feature in the displayer
51 /// \param theFeature the feature instance to be displayed
52 /// \param isUpdateViewer the flag whether the viewer should be updated
53 void activateFeature(boost::shared_ptr<ModelAPI_Feature> theFeature,
54 const bool isUpdateViewer);
56 /// Updates current operation preview, if it has it.
57 /// \param theCmdId the operation name
58 void updateCurrentPreview(const std::string& theCmdId);
61 void onFeatureTriggered();
62 /// SLOT, that is called after the operation is started. Connect on the focus activated signal
63 void onOperationStarted();
64 /// SLOT, that is called after the operation is stopped. Switched off the modfications performed
65 /// by the operation start
66 void onOperationStopped(ModuleBase_Operation* theOperation);
67 /// SLOT, that is called afetr the popup menu action clicked.
68 void onContextMenuCommand(const QString& theId, bool isChecked);
69 /// SLOT, that is called by mouse press in the viewer.
70 /// The mouse released point is sent to the current operation to be processed.
71 /// \param theEvent the mouse event
72 void onMousePressed(QMouseEvent* theEvent);
73 /// SLOT, that is called by mouse release in the viewer.
74 /// The mouse released point is sent to the current operation to be processed.
75 /// \param theEvent the mouse event
76 void onMouseReleased(QMouseEvent* theEvent);
77 /// SLOT, that is called by mouse move in the viewer.
78 /// The mouse moved point is sent to the current operation to be processed.
79 /// \param theEvent the mouse event
80 void onMouseMoved(QMouseEvent* theEvent);
82 /// SLOT, that is called by the key in the viewer is clicked.
83 /// \param theEvent the mouse event
84 void onKeyRelease(QKeyEvent* theEvent);
86 /// SLOT, to apply to the current viewer the operation
87 /// \param theX the X projection value
88 /// \param theY the Y projection value
89 /// \param theZ the Z projection value
90 void onPlaneSelected(double theX, double theY, double theZ);
92 void onLaunchOperation(std::string theName, boost::shared_ptr<ModelAPI_Feature> theFeature);
94 /// SLOT, to switch on/off the multi selection in the viewer
95 /// \param theEnabled the enabled state
96 void onMultiSelectionEnabled(bool theEnabled);
98 /// SLOT, to stop or start selection mode for the features
99 /// \param theFeatures a list of features to be disabled
100 /// \param theToStop the boolean state whether it it stopped or non stopped
101 void onStopSelection(const std::list<XGUI_ViewerPrs>& theFeatures, const bool isStop);
103 /// SLOT, to set selection
104 /// \param theFeatures a list of features to be selected
105 void onSetSelection(const std::list<XGUI_ViewerPrs>& theFeatures);
107 /// SLOT, to close the viewer local context
108 void onCloseLocalContext();
110 /// SLOT, to visualize the feature in another local context mode
111 /// \param theFeature the feature to be put in another local context mode
112 /// \param theMode the mode appeared on the feature
113 void onFeatureConstructed(boost::shared_ptr<ModelAPI_Feature> theFeature,
116 /// Creates a new operation
117 /// \param theCmdId the operation name
118 ModuleBase_Operation* createOperation(const std::string& theCmdId);
120 /// Sends the operation
121 /// \param theOperation the operation
122 void sendOperation(ModuleBase_Operation* theOperation);
125 //! Edits the feature
126 void editFeature(FeaturePtr theFeature);
129 XGUI_Workshop* myWorkshop;
130 PartSet_Listener* myListener;
132 std::map<std::string, std::string> myFeaturesInFiles;