- /// SLOT, that is called by the mouse double click in the viewer.
- /// \param theEvent the mouse event
- void onMouseDoubleClick(QMouseEvent* theEvent);
-
- /// SLOT, to apply to the current viewer the operation
- /// \param theX the X projection value
- /// \param theY the Y projection value
- /// \param theZ the Z projection value
- void onPlaneSelected(double theX, double theY, double theZ);
-
- /// SLOT, to fit all current viewer
- void onFitAllView();
-
- void onLaunchOperation(std::string theName, FeaturePtr theFeature);
-
- /// SLOT, to switch on/off the multi selection in the viewer
- /// \param theEnabled the enabled state
- void onMultiSelectionEnabled(bool theEnabled);
-
- /// SLOT, to stop or start selection mode for the features
- /// \param theFeatures a list of features to be disabled
- /// \param theToStop the boolean state whether it it stopped or non stopped
- void onStopSelection(const std::list<XGUI_ViewerPrs>& theFeatures, const bool isStop);
-
- /// SLOT, to set selection
- /// \param theFeatures a list of features to be selected
- void onSetSelection(const std::list<XGUI_ViewerPrs>& theFeatures);
-
- /// SLOT, to close the viewer local context
- void onCloseLocalContext();
-
- /// SLOT, to visualize the feature in another local context mode
- /// \param theFeature the feature to be put in another local context mode
- /// \param theMode the mode appeared on the feature
- void onFeatureConstructed(FeaturePtr theFeature,
- int theMode);
-protected:
- /// Creates a new operation
- /// \param theCmdId the operation name
- /// \param theFeatureKind a kind of feature to get the feature xml description
- ModuleBase_Operation* createOperation(const std::string& theCmdId,
- const std::string& theFeatureKind = "");
-
- /// Sends the operation
- /// \param theOperation the operation
- void sendOperation(ModuleBase_Operation* theOperation);
-
-protected:
- //! Edits the feature
- void editFeature(FeaturePtr theFeature);
-
-private:
- XGUI_Workshop* myWorkshop;
- PartSet_Listener* myListener;
-
- std::map<std::string, std::string> myFeaturesInFiles;
+ protected:
+ /// Returns new instance of operation object (used in createOperation for customization)
+ virtual ModuleBase_Operation* getNewOperation(const std::string& theFeatureId);
+
+ /// Register validators for this module
+ virtual void registerValidators();
+
+ private slots:
+ void onVertexSelected(ObjectPtr theObject, const TopoDS_Shape& theShape);
+
+ void onPlaneSelected(const std::shared_ptr<GeomAPI_Pln>& thePln);
+
+ private:
+ /// Converts mouse position to 2d coordinates.
+ /// Member myCurrentSketch has to be correctly defined
+ void get2dPoint(ModuleBase_IViewWindow* theWnd, QMouseEvent* theEvent,
+ double& theX, double& theY);
+
+ /// Breaks sequense of automatically resterted operations
+ void breakOperationSequence();
+
+ private:
+ QString myLastOperationId;
+ FeaturePtr myLastFeature;
+
+ bool myIsDragging;
+ bool myDragDone;
+
+ // Automatical restarting mode flag
+ bool myRestartingMode;
+
+ double myCurX, myCurY;
+ CompositeFeaturePtr myCurrentSketch;
+ QList<FeaturePtr> myEditingFeatures;
+ QList<AttributePtr> myEditingAttr;
+
+ Handle(ModuleBase_ShapeInPlaneFilter) myPlaneFilter;