Salome HOME
Coincidence to rectangle macro feature: 1. Get point of sub-feature to set coincidenc...
[modules/shaper.git] / src / ModuleBase / ModuleBase_WidgetMultiSelector.h
index 591d842ad91156746ed3d07174e9a8891e69eb08..bebe4123b98cf30ddf8078088d33803dca11ce3b 100755 (executable)
@@ -65,6 +65,9 @@ class MODULEBASE_EXPORT ModuleBase_WidgetMultiSelector : public ModuleBase_Widge
   /// \return a control list
   virtual QList<QWidget*> getControls() const;
 
+  /// 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
@@ -99,6 +102,9 @@ 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 storeValueCustom() const;
@@ -110,9 +116,6 @@ protected:
   /// parameters of the current attribute
   virtual void storeAttributeValue();
 
-  /// Clear attribute
-  virtual void clearAttribute();
-
   /// Set the focus on the last item in  the list
   virtual void updateFocus();
 
@@ -162,6 +165,26 @@ protected:
   /// \param theValues the result presentations, filled with object and shape of an attribute item
   void convertIndicesToViewerSelection(std::set<int> theAttributeIds,
                                        QList<ModuleBase_ViewerPrs>& theValues) const;
+
+  /// Iterates throgh the model attribute list and remove elements which do not present in the list
+  /// \param theValues the wrapped selection values
+  virtual void removeUnusedAttributeObjects(QList<ModuleBase_ViewerPrs>& theValues);
+
+  /// Converts viewer presentation selection list to objects and shapes map
+  /// \param theValues the wrapped selection values
+  /// \return selection list
+  std::map<ObjectPtr, std::set<GeomShapePtr> > convertSelection
+                                          (QList<ModuleBase_ViewerPrs>& theValues);
+
+  /// Returns true if the object and shape present in the container
+  /// \param theObject a model object, a set of shapes is searched by it
+  /// \param theShape a shape to be in the set of the object shapes
+  /// \param theGeomSelection a map built on selection
+  /// \return boolean result
+  static bool findInSelection(const ObjectPtr& theObject,
+                            const GeomShapePtr& theShape,
+                            const std::map<ObjectPtr, std::set<GeomShapePtr> >& theGeomSelection);
+
 protected:
   /// List control
   QListWidget* myListControl;