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(FeaturePtr 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(FeaturePtr 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 /// SLOT, to fit all current viewer
95 void onLaunchOperation(std::string theName, FeaturePtr theFeature);
97 /// SLOT, to switch on/off the multi selection in the viewer
98 /// \param theEnabled the enabled state
99 void onMultiSelectionEnabled(bool theEnabled);
101 /// SLOT, to stop or start selection mode for the features
102 /// \param theFeatures a list of features to be disabled
103 /// \param theToStop the boolean state whether it it stopped or non stopped
104 void onStopSelection(const std::list<XGUI_ViewerPrs>& theFeatures, const bool isStop);
106 /// SLOT, to set selection
107 /// \param theFeatures a list of features to be selected
108 void onSetSelection(const std::list<XGUI_ViewerPrs>& theFeatures);
110 /// SLOT, to close the viewer local context
111 void onCloseLocalContext();
113 /// SLOT, to visualize the feature in another local context mode
114 /// \param theFeature the feature to be put in another local context mode
115 /// \param theMode the mode appeared on the feature
116 void onFeatureConstructed(FeaturePtr theFeature,
119 /// Creates a new operation
120 /// \param theCmdId the operation name
121 ModuleBase_Operation* createOperation(const std::string& theCmdId);
123 /// Sends the operation
124 /// \param theOperation the operation
125 void sendOperation(ModuleBase_Operation* theOperation);
128 //! Edits the feature
129 void editFeature(FeaturePtr theFeature);
132 XGUI_Workshop* myWorkshop;
133 PartSet_Listener* myListener;
135 std::map<std::string, std::string> myFeaturesInFiles;