Salome HOME
Issue #412: Crash on delete sketch line with constraints
[modules/shaper.git] / src / ModuleBase / ModuleBase_WidgetMultiSelector.h
index e6ad53b2464a9ca8e94d69a3a5e46213a52fd94a..385eabf3fc4dc9f7f0c5bf138c1ec4059cdd09f2 100644 (file)
@@ -11,7 +11,7 @@
 #define MODULEBASE_WIDGETMULTISELECTOR_H_
 
 #include <ModuleBase.h>
-#include <ModuleBase_ModelWidget.h>
+#include <ModuleBase_WidgetValidated.h>
 #include <ModuleBase_FilterNoDegeneratedEdge.h>
 
 #include <GeomAPI_Shape.h>
@@ -47,7 +47,7 @@ class QAction;
 * - tooltip - a tooltip for the widget
 * - type_choice - list of expected shape types.
 */
-class MODULEBASE_EXPORT ModuleBase_WidgetMultiSelector : public ModuleBase_ModelWidget
+class MODULEBASE_EXPORT ModuleBase_WidgetMultiSelector : public ModuleBase_WidgetValidated
 {
   Q_OBJECT
  public:
@@ -70,10 +70,14 @@ class MODULEBASE_EXPORT ModuleBase_WidgetMultiSelector : public ModuleBase_Model
 
   virtual bool eventFilter(QObject* , QEvent* );
 
- public slots:
-  /// Activate or deactivate selection
-  void activateSelection(bool toActivate);
+  /// The methiod called when widget is deactivated
+  virtual void deactivate();
+
+  /// Fills the attribute with the value of the selected owner
+  /// \param theOwner a selected owner
+  virtual bool setSelection(const Handle_SelectMgr_EntityOwner& theOwner);
 
+ public slots:
   /// Slot is called on selection type changed
   void onSelectionTypeChanged();
 
@@ -88,15 +92,19 @@ protected slots:
   void onListSelection();
 
  protected:
+  /// The methiod called when widget is activated
+  virtual void activateCustom();
+
   /// Saves the internal parameters to the given feature
   /// \return True in success
-  virtual bool storeValue() const;
-
-  /// Provide filtering of selected shapes
-   /// \param theShapesToFilter source list of shapes
-   /// \param theResult result list of shapes
-  void filterShapes(const NCollection_List<TopoDS_Shape>& theShapesToFilter,
-                    NCollection_List<TopoDS_Shape>& theResult);
+  virtual bool storeValueCustom() const;
+
+  /// Creates a backup of the current values of the attribute
+  /// It should be realized in the specific widget because of different
+  /// parameters of the current attribute
+  /// \param isBackup a boolean flag, if true, store values from the attribute
+  /// to backup, otherwise set the backed up values to the attribute
+  virtual void backupAttributeValue(const bool isBackup);
 
   /// Set current shape type for selection
   void setCurrentShapeType(const TopAbs_ShapeEnum theShapeType);