X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModuleBase%2FModuleBase_WidgetMultiSelector.h;h=1a40c13039cbd13a795a93da7441f84a470dd3db;hb=ac000140b0fc26efd98d737ff5456a11ea0d6fdc;hp=2e43e575d1f93c0f9382e81a342c513cfb0325c4;hpb=b3695c3af5289903f1c0fa01bbb7c40203c5e544;p=modules%2Fshaper.git diff --git a/src/ModuleBase/ModuleBase_WidgetMultiSelector.h b/src/ModuleBase/ModuleBase_WidgetMultiSelector.h index 2e43e575d..1a40c1303 100755 --- a/src/ModuleBase/ModuleBase_WidgetMultiSelector.h +++ b/src/ModuleBase/ModuleBase_WidgetMultiSelector.h @@ -37,11 +37,10 @@ #include class QWidget; -class QListWidget; -class QComboBox; +//class QComboBox; +class ModuleBase_ListView; class ModuleBase_IWorkshop; -class QAction; - +class ModuleBase_ChoiceCtrl; /** * \ingroup GUI @@ -77,6 +76,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 @@ -88,33 +93,49 @@ class MODULEBASE_EXPORT ModuleBase_WidgetMultiSelector : public ModuleBase_Widge /// \param theValues a list of presentations virtual void getHighlighted(QList>& theValues); + /// Returns true if the action can be processed. By default it is empty and returns false. + /// \param theActionType an action type + /// \param isActionEnabled if true, the enable state of the action + 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, + 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 true if the event is processed. The default implementation is empty, returns false. - virtual bool processDelete(); + /// 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(); 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(); + protected: + /// Returns true if the event is processed. The default implementation is empty, returns false. + virtual bool processDelete(); + /// The methiod called when widget is activated virtual void activateCustom(); @@ -122,8 +143,19 @@ protected: /// \return True in success virtual bool storeValueCustom(); + /// restire type of selection by feature attribute virtual bool restoreValueCustom(); + /// Creates an element of the attribute current selection if history is empty + virtual void appendFirstSelectionInHistory(); + + /// Create an element in the history that stores the current selection, + /// position in the history is incremented + void appendSelectionInHistory(); + + /// Clear list of stored selected items, reset current position into '-1' + void clearSelectedHistory(); + /// Set the focus on the last item in the list virtual void updateFocus(); @@ -192,29 +224,29 @@ protected: ModuleBase_IWorkshop* theWorkshop); protected: - /// List control - QListWidget* myListControl; + ModuleBase_ListView* myListView; ///< List control - /// Combobox of types - QComboBox* myTypeCombo; + bool myIsUseChoice; ///< A flag to store use_choice parameter state - /// Provides correspondance between Result object and its shape - typedef QPair GeomSelection; + QStringList myShapeTypes; ///< List of Shape types defined in XML - /// A copy action for pop-up menu in a list control - QAction* myCopyAction; - - /// A delete action for pop-up menu in a list control - QAction* myDeleteAction; - - /// 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; /// A flag to block set selection perform if the method is in process bool myIsSetSelectionBlocked; + + /// A container of selected objects + QList > > mySelectedHistoryValues; + + /// Position in a container of selected values + int myCurrentHistoryIndex; + + bool myIsFirst; + std::string myDefMode; }; #endif /* MODULEBASE_WIDGETFILESELECTOR_H_ */