Salome HOME
PLaneGCSSolver: It is not necessary to adjust Angle constraint (issue #1536)
[modules/shaper.git] / src / PartSet / PartSet_WidgetPoint2dDistance.h
index 7b350d33edd8623e5e9a265bb1c89fe4d5c1010e..1c4e05b2a6d1f806fb9c282147600fc5963160e8 100644 (file)
@@ -42,13 +42,16 @@ 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_WidgetPoint2dDistance(QWidget* theParent, ModuleBase_IWorkshop* theWorkshop,
-                                 const Config_WidgetAPI* theData,
-                                 const std::string& theParentId);
+  PartSet_WidgetPoint2dDistance(QWidget* theParent, ModuleBase_IWorkshop* theWorkshop,
+                                const Config_WidgetAPI* theData);
 
   virtual ~PartSet_WidgetPoint2dDistance();
 
+  /// 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<ModuleBase_ViewerPrs>& theValue);
+
   /// The methiod called when widget is deactivated
   virtual void deactivate();
 
@@ -74,6 +77,17 @@ public slots:
   void onMouseRelease(ModuleBase_IViewWindow* theWnd, QMouseEvent* theEvent);
 
 protected:
+  /// 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();
+
   /// The methiod called when widget is activated
   virtual void activateCustom();
 
@@ -96,6 +110,10 @@ protected:
 
   /// Reference to sketch
   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 myValueInCash; ///< the cashed X value during value state change
 };
 
 #endif