Salome HOME
Issue #1834: Fix length of lines
[modules/shaper.git] / src / PartSet / PartSet_SketcherReetntrantMgr.h
index 5f68d34ea801da84cd0be655b27c2b820d468092..a18db6bcd458ecb6ebfa7ee25a2b51b664774214 100755 (executable)
@@ -16,6 +16,8 @@ class ModuleBase_Operation;
 class ModuleBase_ModelWidget;
 class ModuleBase_IViewWindow;
 
+class ModelAPI_CompositeFeature;
+
 class QMouseEvent;
 
 class XGUI_Workshop;
@@ -42,7 +44,7 @@ enum RestartingMode {
 
 public:
   /// Constructor
-  /// \param theParent a parent object
+  /// \param theWorkshop a workshop instance
   PartSet_SketcherReetntrantMgr(ModuleBase_IWorkshop* theWorkshop);
   virtual ~PartSet_SketcherReetntrantMgr();
 
@@ -97,6 +99,10 @@ public:
   /// Returns false if the reentrant mode of the operation is not empty.
   bool canBeCommittedByPreselection();
 
+  /// returns true if an internal edit operation is started
+  /// \return boolean value
+  bool isInternalEditStarted() const;
+
 private slots:
   /// SLOT, that is called by a widget activating in the property panel
   /// If the 'internal' edit operation is started, it activates the first widget selection
@@ -146,11 +152,20 @@ private:
   /// This is type for Circle and Arc features
   /// \param theSourceFeature a source feature
   /// \param theNewFeature a new feature
+  /// \param theSketch an active sketch
+  /// \param isTemporary is used to do not create additional features(e.g. coicidence for line)
   /// \return true is something is copied
   static bool copyReetntrantAttributes(const FeaturePtr& theSourceFeature,
-                                       const FeaturePtr& theNewFeature);
+                                      const FeaturePtr& theNewFeature,
+                                      const std::shared_ptr<ModelAPI_CompositeFeature>& theSketch,
+                                      const bool isTemporary = false);
+
+  /// Checks whethe the feature of the given operation has kind an arc and the arc type is tangent
+  bool isTangentArc(ModuleBase_Operation* theOperation,
+                    const std::shared_ptr<ModelAPI_CompositeFeature>& /*theSketch*/) const;
 
-  static bool isTangentArc(ModuleBase_Operation* theOperation);
+  /// Accept All action is enabled if an internal edit is started. It updates the state of the button
+  void updateAcceptAllAction();
 
   /// Returns the workshop
   XGUI_Workshop* workshop() const;
@@ -165,6 +180,7 @@ private:
   bool myIsFlagsBlocked; /// true when reset of flags should not be perfromed
   bool myIsInternalEditOperation; /// true when the 'internal' edit is started
 
+  FeaturePtr myPreviousFeature; /// feature of the previous operation, which is restarted
   FeaturePtr myInternalFeature;
   QWidget* myInternalWidget;
   ModuleBase_ModelWidget* myInternalActiveWidget;