X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModuleBase%2FModuleBase_WidgetMultiSelector.h;h=bebe4123b98cf30ddf8078088d33803dca11ce3b;hb=ced1c42d80f02b1efa749ecdf35e620dcca4d9cc;hp=d8df98aa3cb815bba77ee99f2ac008c45575a230;hpb=c3ae28ba30027cc4a6a757ef623f40adaae96ead;p=modules%2Fshaper.git diff --git a/src/ModuleBase/ModuleBase_WidgetMultiSelector.h b/src/ModuleBase/ModuleBase_WidgetMultiSelector.h index d8df98aa3..bebe4123b 100755 --- a/src/ModuleBase/ModuleBase_WidgetMultiSelector.h +++ b/src/ModuleBase/ModuleBase_WidgetMultiSelector.h @@ -65,6 +65,9 @@ class MODULEBASE_EXPORT ModuleBase_WidgetMultiSelector : public ModuleBase_Widge /// \return a control list virtual QList 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 @@ -72,12 +75,19 @@ class MODULEBASE_EXPORT ModuleBase_WidgetMultiSelector : public ModuleBase_Widge virtual bool setSelection(QList& 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& theValues); + /// Checks the widget validity. By default, it returns true. /// \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(); @@ -85,10 +95,16 @@ protected slots: /// 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; @@ -100,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(); @@ -141,6 +154,37 @@ protected: /// 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& 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 theAttributeIds, + QList& 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& theValues); + + /// Converts viewer presentation selection list to objects and shapes map + /// \param theValues the wrapped selection values + /// \return selection list + std::map > convertSelection + (QList& 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 >& theGeomSelection); + protected: /// List control QListWidget* myListControl; @@ -153,6 +197,7 @@ protected: /// 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