Salome HOME
Fix for crash on multi-selection of group-vertices on imported body with Shift-key...
[modules/shaper.git] / src / ModuleBase / ModuleBase_WidgetMultiSelector.h
index e0b257ca4495790b6d0a872e9730af9b9bc451b4..5f2bf3498abd470eb50efc4edb46858e94c5b3b6 100644 (file)
@@ -12,7 +12,6 @@
 
 #include <ModuleBase.h>
 #include <ModuleBase_WidgetValidated.h>
-#include <ModuleBase_FilterNoDegeneratedEdge.h>
 
 #include <GeomAPI_Shape.h>
 #include <ModelAPI_Result.h>
@@ -73,6 +72,10 @@ class MODULEBASE_EXPORT ModuleBase_WidgetMultiSelector : public ModuleBase_Widge
   /// 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 setSelectionCustom(const ModuleBase_ViewerPrs& thePrs);
+
  public slots:
   /// Slot is called on selection type changed
   void onSelectionTypeChanged();
@@ -98,13 +101,13 @@ protected slots:
   /// 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);
+  virtual void storeAttributeValue();
 
-  /// Fills the attribute with the value of the selected owner
-  /// \param theOwner a selected owner
-  virtual void setSelection(const Handle_SelectMgr_EntityOwner& theOwner);
+  /// 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 theValid a boolean flag, if restore happens for valid parameters
+  virtual void restoreAttributeValue(const bool theValid);
 
   /// Set current shape type for selection
   void setCurrentShapeType(const TopAbs_ShapeEnum theShapeType);
@@ -131,14 +134,17 @@ protected slots:
   /// Provides correspondance between Result object and its shape
   typedef QPair<ResultPtr, GeomShapePtr> GeomSelection;
 
-  /// Variable of GeomSelection type
-  QList<GeomSelection> mySelection;
-
   /// An action for pop-up menu in a list control
   QAction* myCopyAction;
 
-  /// A filter for the Edges type, which avoid the generated edges selection
-  Handle(ModuleBase_FilterNoDegeneratedEdge) myEdgesTypeFilter;
+  /// backup parameters of the model attribute. The class processes three types of attribute:
+  /// Reference, RefAttr and Selection. Depending on the attribute type, only the attribute parameter
+  /// values are reserved in the backup
+  /// Variable of selection type
+  std::string mySelectionType;
+
+  /// Variable of GeomSelection
+  QList<GeomSelection> mySelection;
 };
 
 #endif /* MODULEBASE_WIDGETFILESELECTOR_H_ */