X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FPartSet%2FPartSet_WidgetPoint2d.h;h=d4271e5589c6c4d8319a8b29427d37f9b4af21a5;hb=33c5fdce3cd63dd95a738439a0399dd982abcd73;hp=d5f87eca0b97c05b41ddf95c0d0c3b201c314316;hpb=87d7ff7e518c103f4319f7395e6491cd2e9406a5;p=modules%2Fshaper.git diff --git a/src/PartSet/PartSet_WidgetPoint2d.h b/src/PartSet/PartSet_WidgetPoint2d.h index d5f87eca0..d4271e558 100755 --- a/src/PartSet/PartSet_WidgetPoint2d.h +++ b/src/PartSet/PartSet_WidgetPoint2d.h @@ -56,12 +56,19 @@ Q_OBJECT virtual bool setSelection(QList& theValues, const bool theToValidate); + /// Select the internal content if it can be selected. It is empty in the default realization + virtual void selectContent(); + /// Returns list of widget controls /// \return a control list virtual QList getControls() const; //bool initFromPrevious(ObjectPtr theObject); + /// Defines if the widget can be activated by mouse move. + /// By default it returns false + virtual bool canBeActivatedByMove(); + /// The methiod called when widget is deactivated virtual void deactivate(); @@ -86,6 +93,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(); @@ -96,7 +107,6 @@ public slots: /// \param theEvent a mouse event void onMouseMove(ModuleBase_IViewWindow* theWnd, QMouseEvent* theEvent); -protected slots: /// Process mouse release event /// \param theWnd a view window /// \param theEvent a mouse event @@ -107,8 +117,16 @@ protected: /// \return True in success virtual bool storeValueCustom() const; + /// 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(); @@ -128,6 +146,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 @@ -141,8 +166,20 @@ protected: /// \theObject a result object void 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, const bool theSearchInResults = false); + protected: - ModuleBase_IWorkshop* myWorkshop; + ModuleBase_IWorkshop* myWorkshop; ///< workshop private: @@ -153,6 +190,11 @@ private: //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