X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FPartSet%2FPartSet_WidgetPoint2d.h;h=6992569bac26f75f47eff989b7f27362d5a85fad;hb=383021cb51c4720904096ca851db5ee79255b402;hp=e5e540f57d122b8af428c6427a6033651973aeeb;hpb=cc21f7540560d85b60431cf8d820d93c5e66800a;p=modules%2Fshaper.git diff --git a/src/PartSet/PartSet_WidgetPoint2d.h b/src/PartSet/PartSet_WidgetPoint2d.h index e5e540f57..6992569ba 100755 --- a/src/PartSet/PartSet_WidgetPoint2d.h +++ b/src/PartSet/PartSet_WidgetPoint2d.h @@ -42,18 +42,21 @@ Q_OBJECT /// \param theParent the parent object /// \param theWorkshop a current workshop /// \param theData the widget configuation. The attribute of the model widget is obtained from - /// \param theParentId is Id of a parent of the current attribute PartSet_WidgetPoint2D(QWidget* theParent, ModuleBase_IWorkshop* theWorkshop, - const Config_WidgetAPI* theData, - const std::string& theParentId); + const Config_WidgetAPI* theData); /// Destructor virtual ~PartSet_WidgetPoint2D(); + /// Checks if the selection presentation is valid in widget + /// \param theValue a selected presentation in the view + /// \return a boolean value + virtual bool isValidSelectionCustom(const std::shared_ptr& theValue); + /// Set the given wrapped value to the current widget /// This value should be processed in the widget according to the needs /// \param theValues the wrapped widget values /// \param theToValidate a validation flag - virtual bool setSelection(QList& theValues, + virtual bool setSelection(QList>& theValues, const bool theToValidate); /// Select the internal content if it can be selected. It is empty in the default realization @@ -93,6 +96,10 @@ Q_OBJECT /// Returns true if the event is processed. virtual bool processEnter(); + /// Returns true if the attribute can be changed using the selected shapes in the viewer + /// and creating a coincidence constraint to them. This control use them. + virtual bool useSelectedShapes() const; + signals: /// Signal about selection of an existing vertex from an object void vertexSelected(); @@ -111,10 +118,18 @@ public slots: protected: /// Saves the internal parameters to the given feature /// \return True in success - virtual bool storeValueCustom() const; + virtual bool storeValueCustom(); + /// Restore value from attribute data to the widget's control virtual bool restoreValueCustom(); + /// Store current value in cashed value + void storeCurentValue(); + + /// Restore cashed value in the model attribute + /// \return boolean state if the restored feature shoud be hidden + bool restoreCurentValue(); + /// Fills the widget with default values /// \return true if the widget current value is reset virtual bool resetCustom(); @@ -134,6 +149,13 @@ protected: /// Process value changed event //void onValuesChanged(); + /// Compute the feature default value and fill the controls with it + /// or store the control value to the feature + /// The widget is not initialize the attribute value in order to avoid the + /// incorrect visualization in Sketch. E.g. by a line creation, the line should not + /// be visualized immediatelly when the end point widget is activated. + virtual void initializeValueByActivate(); + private: /// Returns point 2d from selected vertex /// \param theView a view window @@ -145,10 +167,31 @@ protected: /// Create a coincidence constraint between the attribute and the parameter object /// \theObject a result object - void setConstraintWith(const ObjectPtr& theObject); + /// \return true if succed + bool setConstraintWith(const ObjectPtr& theObject); + + /// Returns if the feature is an orphan point, circle or an arc. Returns true if it + /// has no a coincident to other lines. It processes point, circle and arc features + /// In circle an arc features, only centers are processed, for other points, it returns + /// that the point is not an orphan. + /// \param theFeature a checked feature + /// \param theSketch a sketch + /// \param theX an X coordinate of the point + /// \param theY an Y coordinate of the point + /// \return boolean result + static bool isOrphanPoint(const FeaturePtr& theFeature, const CompositeFeaturePtr& theSketch, + double theX, double theY); + + /// Explode the given shape by vertices and found closed to the point vertes + /// \param theShape a shape to be exploded + /// \param thePoint a point + /// \return boolean value + static bool shapeContainsPoint(const std::shared_ptr& theShape, + const std::shared_ptr& thePoint, + const CompositeFeaturePtr& theSketch); protected: - ModuleBase_IWorkshop* myWorkshop; + ModuleBase_IWorkshop* myWorkshop; ///< workshop private: @@ -156,9 +199,12 @@ private: ModuleBase_ParamSpinBox* myXSpin; ///< the spin box for the X coordinate ModuleBase_ParamSpinBox* myYSpin; ///< the spin box for the Y coordinate - //std::string myOptionParam; /// Parameter name which has to be taken from previous feature - CompositeFeaturePtr mySketch; + + bool myValueIsCashed; /// boolean state if the value is cashed during value state change + bool myIsFeatureVisibleInCash; /// boolean value if the feature was visible when cash if filled + double myXValueInCash; /// the cashed X value during value state change + double myYValueInCash; /// the cashed Y value during value state change }; #endif