Salome HOME
Issue #559: Control doesn't have variable if its text is empty
[modules/shaper.git] / src / ModuleBase / ModuleBase_WidgetMultiSelector.h
index 49ae66b6b85f47e9a333df3dc701ae8c954a0785..033b260b4888c3912ea80ef46cb338fd3cee7407 100644 (file)
@@ -72,16 +72,22 @@ class MODULEBASE_EXPORT ModuleBase_WidgetMultiSelector : public ModuleBase_Widge
   /// The methiod called when widget is deactivated
   virtual void deactivate();
 
+  /// 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
+  /// \param thePosition an index in the list of values, the values should be get from the index
+  virtual bool setSelection(const QList<ModuleBase_ViewerPrs>& theValues, int& thePosition);
+
   /// Fills the attribute with the value of the selected owner
   /// \param theOwner a selected owner
-  virtual bool setSelection(const Handle_SelectMgr_EntityOwner& theOwner);
+  virtual bool setSelectionCustom(const ModuleBase_ViewerPrs& thePrs);
 
  public slots:
   /// Slot is called on selection type changed
   void onSelectionTypeChanged();
 
   /// Slot is called on selection changed
-  void onSelectionChanged();
+  virtual void onSelectionChanged();
 
 protected slots:
   /// Slot for copy command in a list pop-up menu
@@ -113,9 +119,15 @@ protected slots:
   void setCurrentShapeType(const TopAbs_ShapeEnum theShapeType);
 
   /// Start shape selection
-  void activateShapeSelection();
+  /// \param isActivated a state whether the shape is activated or deactivated in selection
+  void activateShapeSelection(const bool isActivated);
+
+  /// Return the attribute values wrapped in a list of viewer presentations
+  /// \return a list of viewer presentations, which contains an attribute result and
+  /// a shape. If the attribute do not uses the shape, it is empty
+  QList<ModuleBase_ViewerPrs> getAttributeSelection() const;
 
- private:
+ protected:
    /// Update selection list
    void updateSelectionList(AttributeSelectionListPtr);
 
@@ -128,9 +140,6 @@ protected slots:
   //TODO: Move into the base of selectors
   ModuleBase_IWorkshop* myWorkshop;
 
-  /// If true then local selector has to be activated in context
-  bool myIsActive;
-
   /// Provides correspondance between Result object and its shape
   typedef QPair<ResultPtr, GeomShapePtr> GeomSelection;