Salome HOME
Fix solvespace version number in environment.
[modules/shaper.git] / src / ModuleBase / ModuleBase_WidgetSelector.h
index 4f3dd6e4af2807bd3b9c4d8fe96cec5a714d7a22..58cb33062030fe26c3bb28a875a1b0df5ecc4c53 100755 (executable)
@@ -13,6 +13,7 @@
 #include "ModuleBase_Definitions.h"
 
 #include <ModelAPI_Object.h>
+#include <ModelAPI_Attribute.h>
 #include <GeomAPI_Shape.h>
 
 class Config_WidgetAPI;
@@ -42,25 +43,21 @@ Q_OBJECT
   /// Defines if it is supposed that the widget should interact with the viewer.
   virtual bool isViewerSelector() { return true; }
 
+  /// Activate or deactivate selection and selection filters
+  virtual void activateSelectionAndFilters(bool toActivate);
+
   /// Checks the widget validity. By default, it returns true.
-  /// \param theValue a selected presentation in the view
+  /// \param thePrs a selected presentation in the view
   /// \return a boolean value
   virtual bool isValidSelectionCustom(const ModuleBase_ViewerPrs& thePrs);
 
   /// Fills the attribute with the value of the selected owner
-  /// \param theOwner a selected owner
+  /// \param thePrs a selected owner
   virtual bool setSelectionCustom(const ModuleBase_ViewerPrs& thePrs);
 
   /// The methiod called when widget is deactivated
   virtual void deactivate();
 
-  //TODO: nds stabilization hotfix
-  virtual void disconnectSignals();
-
-protected:
-  /// Activate or deactivate selection
-  void activateSelection(bool toActivate);
-
  private slots:
    /// Slot which is called on selection event
   void onSelectionChanged();
@@ -69,7 +66,7 @@ protected:
   /// Set an empty value to attribute
   virtual void clearAttribute() = 0;
 
-  // Update focus after the attribute value change
+  /// Update focus after the attribute value change
   virtual void updateFocus() = 0;
 
   /// Return the attribute values wrapped in a list of viewer presentations
@@ -91,12 +88,16 @@ protected:
   /// \return true if it is succeed
   virtual void setObject(ObjectPtr theSelectedObject, GeomShapePtr theShape) = 0;
 
-   /// The methiod called when widget is activated
+  /// The methiod called when widget is activated
   virtual void activateCustom();
 
-  /// Returns true if selected shape corresponds to requested shape types
+  /// Returns true if selected shape corresponds to requested shape types.
+  /// If the widget type of shapes contains the faces item, the result is converted
+  /// to construction result and the method returns true if there is at least one face
+  /// in the construction.
   /// \param theShape a shape
-  bool acceptSubShape(const TopoDS_Shape& theShape) const;
+  /// \param theResult a selected result
+  bool acceptSubShape(const GeomShapePtr& theShape, const ResultPtr& theResult) const;
 
   /// Return an object and geom shape by the viewer presentation
   /// \param thePrs a selection
@@ -107,9 +108,11 @@ protected:
                                 GeomShapePtr& theShape);
 
   //----------- Class members -------------
-protected:
-  /// Reference to workshop
-  ModuleBase_IWorkshop* myWorkshop;
+  /// Returns a name in the next form: attribute_feature_name/attribute_id
+  /// \param theAttribute a model attribute
+  /// \return string value
+  static std::string generateName(const AttributePtr& theAttribite,
+                                  ModuleBase_IWorkshop* theWorkshop);
 };
 
 #endif