X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModuleBase%2FModuleBase_WidgetMultiSelector.h;h=a4c2f75f01bd51407b154c2e067b5827a38ea234;hb=06e7f5859095193fc7f498bd89a7d28009794f53;hp=74b0ff510ea36567495b8204b91dbfb30d0653ae;hpb=016814c4673909dcd7fd9591694cf599623dfbc7;p=modules%2Fshaper.git diff --git a/src/ModuleBase/ModuleBase_WidgetMultiSelector.h b/src/ModuleBase/ModuleBase_WidgetMultiSelector.h old mode 100755 new mode 100644 index 74b0ff510..a4c2f75f0 --- a/src/ModuleBase/ModuleBase_WidgetMultiSelector.h +++ b/src/ModuleBase/ModuleBase_WidgetMultiSelector.h @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2017 CEA/DEN, EDF R&D +// Copyright (C) 2014-2023 CEA, EDF // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -12,10 +12,9 @@ // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or -// email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef MODULEBASE_WIDGETMULTISELECTOR_H_ @@ -37,11 +36,13 @@ #include class QWidget; -class QListWidget; -class QComboBox; +class QCheckBox; +class QPushButton; +class QVBoxLayout; +class ModuleBase_ListView; class ModuleBase_IWorkshop; -class QAction; - +class ModuleBase_ChoiceCtrl; +class ModuleBase_FilterStarter; /** * \ingroup GUI @@ -50,12 +51,12 @@ class QAction; * \code * +* shape_types="Vertices Edges Faces Solids" /> * \endcode * It uses following parameters: * - id - is a name of corresponded attribute * - tooltip - a tooltip for the widget -* - type_choice - list of expected shape types. +* - shape_types - list of expected shape types. */ class MODULEBASE_EXPORT ModuleBase_WidgetMultiSelector : public ModuleBase_WidgetSelector { @@ -77,6 +78,12 @@ class MODULEBASE_EXPORT ModuleBase_WidgetMultiSelector : public ModuleBase_Widge /// The methiod called when widget is deactivated virtual void deactivate(); + /// Update Undo/Redo actions state + virtual void updateAfterDeactivation(); + + /// Update Undo/Redo actions state + virtual void updateAfterActivation(); + /// 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 @@ -94,35 +101,48 @@ class MODULEBASE_EXPORT ModuleBase_WidgetMultiSelector : public ModuleBase_Widge virtual bool canProcessAction(ModuleBase_ActionType theActionType, bool& isActionEnabled); /// Returns true if the event is processed. The default implementation is empty, returns false. - virtual bool processAction(ModuleBase_ActionType theActionType); - - /// Activate or deactivate selection and selection filters - /// \return true if the selection filter of the widget is activated in viewer context - virtual bool activateSelectionAndFilters(bool toActivate); + virtual bool processAction(ModuleBase_ActionType theActionType, + const ActionParamPtr& theParam = ActionParamPtr()); /// 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 std::shared_ptr& thePrs); + /// Returns list of accessible actions for Undo/Redo commands. By default it returns empty list. + /// \param theActionType type of action. It can be ActionUndo or ActionRedo. + virtual QList actionsList(ModuleBase_ActionType theActionType) const; + + /// The slot is called when user press Ok or OkPlus buttons in the parent property panel + virtual void onFeatureAccepted(); + + /// Returns True if data of its feature was modified during operation + virtual bool isModified() const; + + virtual void setReadOnly(bool isReadOnly); + public slots: /// Slot is called on selection type changed void onSelectionTypeChanged(); - /// Slot which is called on selection event. Redefined to process XML state about - /// clear selection in neutral point - virtual void onSelectionChanged(); +protected: + /// Returns true if envent is processed. + /// Redefined to process XML state about clear selection in neutral point + virtual bool processSelection(); 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(); + void onListActivated(); + + void onSameTopology(bool theOn); + + void onShowOnly(bool); + protected: /// Returns true if the event is processed. The default implementation is empty, returns false. virtual bool processDelete(); @@ -162,7 +182,7 @@ protected: virtual QIntList shapeTypes() const; /// Set current shape type for selection - void setCurrentShapeType(const int theShapeType); + void setCurrentShapeType(const QString& theShapeType); /// Return the attribute values wrapped in a list of viewer presentations /// \return a list of viewer presentations, which contains an attribute result and @@ -215,23 +235,14 @@ protected: ModuleBase_IWorkshop* theWorkshop); protected: - /// List control - QListWidget* myListControl; - - /// Combobox of types - QComboBox* myTypeCombo; - - /// Provides correspondance between Result object and its shape - typedef QPair GeomSelection; + ModuleBase_ListView* myListView; ///< List control - /// A copy action for pop-up menu in a list control - QAction* myCopyAction; + bool myIsUseChoice; ///< A flag to store use_choice parameter state - /// A delete action for pop-up menu in a list control - QAction* myDeleteAction; + QStringList myShapeTypes; ///< List of Shape types defined in XML - /// A flag to store use_choice parameter state - bool myIsUseChoice; + /// Control for types + ModuleBase_ChoiceCtrl* myTypeCtrl; /// A flag to clear selection by click in empty place in the viewer bool myIsNeutralPointClear; @@ -241,8 +252,22 @@ protected: /// A container of selected objects QList > > mySelectedHistoryValues; + /// Position in a container of selected values int myCurrentHistoryIndex; + + bool myIsFirst; + std::string myDefMode; + + QVBoxLayout* myMainLayout; + QCheckBox* myGeomCheck; + ModuleBase_FilterStarter* myFiltersWgt; + QPushButton* myShowOnlyBtn; + + QObjectPtrList myVisibleObjects; + QStringList myAllowedObjects; + QStringList myTmpAllowed; + std::string myUseFilters; }; #endif /* MODULEBASE_WIDGETFILESELECTOR_H_ */