#include <GeomAPI_Shape.h>
#include <ModelAPI_Result.h>
-#include <ModelAPI_AttributeSelectionList.h>
#include <NCollection_List.hxx>
#include <TopoDS_Shape.hxx>
class QListWidget;
class QComboBox;
class ModuleBase_IWorkshop;
-class GeomValidators_ShapeType;
class QAction;
/// \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
+ /// \param theToValidate a validation of the values flag
virtual bool setSelection(QList<ModuleBase_ViewerPrs>& theValues,
const bool theToValidate);
+ /// Returns values which should be highlighted when the whidget is active
+ /// \param theValues a list of presentations
+ virtual void getHighlighted(QList<ModuleBase_ViewerPrs>& theValues);
+
/// 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);
- public slots:
+ /// Returns true if the event is processed. The default implementation is empty, returns false.
+ virtual bool processDelete();
+
+public slots:
/// Slot is called on selection type changed
void onSelectionTypeChanged();
/// Slot for copy command in a list pop-up menu
void onCopyItem();
+ /// Slot for delete command in a list pop-up menu
+ void onDeleteItem();
+
/// Slot is called on selection of list of selected items
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;
/// Clear attribute
virtual void clearAttribute();
- // Set the focus on the last item in the list
+ /// Set the focus on the last item in the list
virtual void updateFocus();
/// Computes and updates name of selected object in the widget
/// a shape. If the attribute do not uses the shape, it is empty
virtual QList<ModuleBase_ViewerPrs> getAttributeSelection() const;
- /// Update selection list
- void updateSelectionList(AttributeSelectionListPtr);
+ /// Fills the list control by the attribute values
+ void updateSelectionList();
/// Converts the XML defined type choice to the validator type
/// For example, the "Edges" is converted to "edge"
std::string validatorType(const QString& theType) const;
+protected:
+ /// Returns attribute indices selected in the widget selection list
+ /// \param theIndices a list of indices
+ void getSelectedAttributeIndices(std::set<int>& theIndices);
+
+ /// Gets the feature attribute and fill a list of viewer presentation for the attribute
+ /// indices. If the the container of indices is empty, it returns all objects.
+ /// \param theAttributeIds indices in attribute list to be returned
+ /// \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;
protected:
/// List control
QListWidget* myListControl;
/// An action for pop-up menu in a list control
QAction* myCopyAction;
+ QAction* myDeleteAction;
/// 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
std::string mySelectionType;
/// 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
+ /// A flag to store use_choice parameter state
bool myIsUseChoice;
};