X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModuleBase%2FModuleBase_ModelWidget.h;h=fdd467481bf79cf5439a99b6b28834b411f507f2;hb=afbbacca198d72a90472539698aa055bd58c5e56;hp=18a201a39870749351b2ac003c3bea1f4ee9f210;hpb=9c514651da1b6a7ecc068e6bc1e146f569873603;p=modules%2Fshaper.git diff --git a/src/ModuleBase/ModuleBase_ModelWidget.h b/src/ModuleBase/ModuleBase_ModelWidget.h index 18a201a39..fdd467481 100644 --- a/src/ModuleBase/ModuleBase_ModelWidget.h +++ b/src/ModuleBase/ModuleBase_ModelWidget.h @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2017 CEA/DEN, EDF R&D +// Copyright (C) 2014-2019 CEA/DEN, EDF R&D // // 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_MODELWIDGET_H @@ -23,10 +22,14 @@ #include #include +#include #include #include +#include #include +#include + #include #include @@ -82,6 +85,17 @@ Q_OBJECT /// \return the boolean result bool isInitialized(ObjectPtr theObject) const; + /// Fills given container with selection modes if the widget has it + /// \param [out] theModuleSelectionModes module additional modes, -1 means all default modes + /// \param [out] theModes a container of modes + virtual void selectionModes(int& theModuleSelectionModes, QIntList& theModes); + + /// Appends into container of workshop selection filters + /// \param [out] theModuleSelectionFilters module additional modes, -1 means all default modes + /// \param [out] theSelectionFilters selection filters + virtual void selectionFilters(QIntList& theModuleSelectionFilters, + SelectMgr_ListOfFilter& theSelectionFilters); + /// Returns true, if default value of the widget should be computed /// on operation's execute, like radius for circle's constraint (can not be zero) bool isComputedDefault() const { return myIsComputedDefault; } @@ -136,7 +150,7 @@ Q_OBJECT //! If the feature is correct, it returns an empty value //! \param theValueStateChecked the boolean flag if the state of the widget should be checked //! \return string value - QString getError(const bool theValueStateChecked = true) const; + virtual QString getError(const bool theValueStateChecked = true) const; /// Set the given wrapped value to the current widget /// This value should be processed in the widget according to the needs @@ -185,8 +199,13 @@ Q_OBJECT /// The method called when widget is deactivated virtual void deactivate(); + /// Opportunity to do something after the active widget of the property panel changed + virtual void updateAfterDeactivation() {} + /// Opportunity to do something after the active widget of the property panel changed + virtual void updateAfterActivation() {} + /// The method called if widget should be activated always - virtual bool needToBeActiated() { return false; } + virtual bool needToBeActivated() { return false; } /// Returns list of widget controls /// \return a control list @@ -251,7 +270,8 @@ Q_OBJECT 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); + virtual bool processAction(ModuleBase_ActionType theActionType, + const ActionParamPtr& theParam = ActionParamPtr()); /// 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. @@ -274,6 +294,15 @@ Q_OBJECT /// \return a model widget or NULL static ModuleBase_ModelWidget* findModelWidget(ModuleBase_IPropertyPanel* theProp, QWidget* theWidget); + + /// Returns True if the widget uses feature attribute. + /// If not then it means that the widget do not need attribute at all. + virtual bool usesAttribute() const { return true; } + + /// It is called when user press Ok or OkPlus buttons in the parent property panel + /// By default this slot does nothing + virtual void onFeatureAccepted() {} + signals: /// The signal about widget values are to be changed void beforeValuesChanged(); @@ -361,7 +390,10 @@ protected: //// Returns true if the event is processed. The default implementation is empty, returns false. virtual bool processDelete(); -protected slots: + /// Returns true if envent is processed. It applyes workshop selection for the widget attribute. + virtual bool processSelection(); + + protected slots: /// Processing of values changed in model widget by store the current value to the feature void onWidgetValuesChanged();