Salome HOME
Issue #478 Problem of performance with selection: remove last instead of clearing...
[modules/shaper.git] / src / ModuleBase / ModuleBase_WidgetMultiSelector.h
index b1195e3e81cce4e3d6fe558dd593ddadc9e8e6df..03e07588280b8c813be2872da1a872a59c3d6dff 100644 (file)
@@ -43,7 +43,7 @@ class QAction;
 *    tooltip="Select a set of objects" 
 *    type_choice="Vertices Edges Faces Solids" /> 
 * \endcode
-* It uses folloing parameters:
+* It uses following parameters:
 * - id - is a name of corresponded attribute
 * - tooltip - a tooltip for the widget
 * - type_choice - list of expected shape types.
@@ -55,7 +55,7 @@ class MODULEBASE_EXPORT ModuleBase_WidgetMultiSelector : public ModuleBase_Widge
   /// Constructor
   /// \param theParent the parent object
   /// \param theWorkshop instance of workshop interface
-  /// \param theData the widget configuation. The attribute of the model widget is obtained from
+  /// \param theData the widget configuration. The attribute of the model widget is obtained from
   /// \param theParentId is Id of a parent of the current attribute
   ModuleBase_WidgetMultiSelector(QWidget* theParent,
                                  ModuleBase_IWorkshop* theWorkshop,
@@ -63,8 +63,6 @@ class MODULEBASE_EXPORT ModuleBase_WidgetMultiSelector : public ModuleBase_Widge
                                  const std::string& theParentId);
   virtual ~ModuleBase_WidgetMultiSelector();
 
-  virtual bool restoreValue();
-
   /// Returns list of widget controls
   /// \return a control list
   virtual QList<QWidget*> getControls() const;
@@ -72,7 +70,8 @@ class MODULEBASE_EXPORT ModuleBase_WidgetMultiSelector : public ModuleBase_Widge
   /// Set the given wrapped value to the current widget
   /// This value should be processed in the widget according to the needs
   /// \param theValues the wrapped selection values
-  virtual bool setSelection(QList<ModuleBase_ViewerPrs>& theValues);
+  virtual bool setSelection(QList<ModuleBase_ViewerPrs>& theValues,
+                            const bool theToValidate);
 
   /// Checks the widget validity. By default, it returns true.
   /// \param theValue a selected presentation in the view
@@ -95,6 +94,8 @@ protected:
   /// \return True in success
   virtual bool storeValueCustom() const;
 
+  virtual bool restoreValueCustom();
+
   /// 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
@@ -162,8 +163,10 @@ protected:
 
   /// Variable of GeomSelection
   QList<GeomSelection> mySelection;
+  int mySelectionCount; // number of elements in the attribute selection list when store
+  bool myIsInValidate; // the widget is in validation mode: store is performed, restore is not
 
-  //bool myIsUseChoice;
+  bool myIsUseChoice;
 };
 
 #endif /* MODULEBASE_WIDGETFILESELECTOR_H_ */