Salome HOME
Fix for the issue #2753 : error when dump/load script
[modules/shaper.git] / src / PartSet / PartSet_WidgetSketchLabel.h
index 515c0377ab415a749f118ff542f1a810c361ca48..a87a70acf58c310a68aeaac9c853c8d3e8d39665 100644 (file)
@@ -73,6 +73,17 @@ public:
   virtual bool setSelection(QList<std::shared_ptr<ModuleBase_ViewerPrs>>& theValues,
                             const bool theToValidate);
 
+  /// Fills given container with selection modes if the widget has it
+  /// \param [out] theModuleSelectionModes module additional modes, -1 means all default modes
+  /// \param theModes [out] a container of modes
+  virtual void selectionModes(int& theModuleSelectionModes, QIntList& theModes);
+
+  /// Using widget selection filter only if plane is not defined.
+  /// \param [out] theModuleSelectionFilters module additional modes, -1 means all default modes
+  /// \param [out] selection filters
+  virtual void selectionFilters(QIntList& theModuleSelectionFilters,
+                                SelectMgr_ListOfFilter& theSelectionFilters);
+
   /// Returns list of widget controls
   /// \return a control list
   virtual QList<QWidget*> getControls() const;
@@ -80,6 +91,9 @@ public:
   /// The methiod called when widget is deactivated
   virtual void deactivate();
 
+  /// The method called if widget should be activated always
+  virtual bool needToBeActiated() { return true; }
+
   /// Returns sketcher plane
   std::shared_ptr<GeomAPI_Pln> plane() const;
 
@@ -150,6 +164,9 @@ protected:
                               bool& isAttributeSetInitializedBlocked,
                               bool& isAttributeSendUpdatedBlocked);
 
+  /// Returns true if envent is processed.
+  virtual bool processSelection();
+
   /// Set the given wrapped value to the current widget
   /// This value should be processed in the widget according to the needs
   /// The method is called by the current operation to process the operation preselection.
@@ -168,14 +185,7 @@ protected:
   /// \param thePrs a presentation
   bool fillSketchPlaneBySelection(const std::shared_ptr<ModuleBase_ViewerPrs>& thePrs);
 
- protected:
-  /// Activate or deactivate selection
-  void activateSelection(bool toActivate);
-
- private slots:
-   /// Slot on change selection
-  void onSelectionChanged();
-
+private slots:
   /// A slot called on set sketch plane view
   void onSetPlaneView();
 
@@ -183,7 +193,7 @@ protected:
   /// \param theOn a flag show constraints or not
   void onShowConstraint(bool theOn);
 
- private:
+private:
   /// Set sketch plane by shape
   /// \param theShape a planar face
   std::shared_ptr<GeomAPI_Dir> setSketchPlane(const TopoDS_Shape& theShape);
@@ -192,6 +202,13 @@ protected:
   /// \param thePlane a plane
   std::shared_ptr<GeomAPI_Dir> setSketchPlane(std::shared_ptr<GeomAPI_Pln> thePlane);
 
+  /**
+  * Returns list of presentations which have displayed shapes with circular edges
+  * (circles, arcs) which are in pane of of the given sketch
+  * \param theSketch - the sketch
+  */
+  QList<std::shared_ptr<ModuleBase_ViewerPrs>> findCircularEdgesInPlane();
+
 private:
   /// class to show/hide preview planes
   PartSet_PreviewPlanes* myPreviewPlanes;