X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModuleBase%2FModuleBase_WidgetMultiSelector.h;h=bebe4123b98cf30ddf8078088d33803dca11ce3b;hb=ced1c42d80f02b1efa749ecdf35e620dcca4d9cc;hp=49dbc1a7c40551ff1cfc4ca2578a7e0b52af7d20;hpb=450d1bd65c11870d3942a30164518037b9a7503e;p=modules%2Fshaper.git diff --git a/src/ModuleBase/ModuleBase_WidgetMultiSelector.h b/src/ModuleBase/ModuleBase_WidgetMultiSelector.h index 49dbc1a7c..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,19 +75,22 @@ 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(); -signals: - /// Signals about items selected in the list view - void itemsSelected(const QList& theItems); - protected slots: /// Slot for copy command in a list pop-up menu void onCopyItem(); @@ -96,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; @@ -107,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(); @@ -148,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;