X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModuleBase%2FModuleBase_Operation.h;h=07b413218a832b294cee888c56e5553b58cbee02;hb=9585dccdd4d56657ced8ef9b25797979ea237f76;hp=b73ba4726c19f8cc50f4ef4f4cffb14bae817595;hpb=4b9217e2590e05ae2b4d5de741e7e6bd5ff0e1d1;p=modules%2Fshaper.git diff --git a/src/ModuleBase/ModuleBase_Operation.h b/src/ModuleBase/ModuleBase_Operation.h index b73ba4726..07b413218 100644 --- a/src/ModuleBase/ModuleBase_Operation.h +++ b/src/ModuleBase/ModuleBase_Operation.h @@ -9,18 +9,20 @@ #define ModuleBase_Operation_H #include +#include -#include +#include +#include #include #include #include -#include - -class ModelAPI_Document; class ModuleBase_ModelWidget; class ModuleBase_OperationDescription; +class ModuleBase_IPropertyPanel; +class ModuleBase_ISelection; +class ModuleBase_IViewer; class QKeyEvent; @@ -102,19 +104,31 @@ Q_OBJECT virtual bool isNestedOperationsEnabled() const; /// Sets the operation feature - void setEditingFeature(FeaturePtr theFeature); + void setFeature(FeaturePtr theFeature); /// Returns True if the current operation works with the given object (feature or result) virtual bool hasObject(ObjectPtr theObj) const; virtual void keyReleased(const int theKey) {}; - virtual void activateNextToCurrentWidget() {}; - /// If operation needs to redisplay its result during operation /// then this method has to return True virtual bool hasPreview() const { return false; } + /// Initialisation of operation with preliminary selection + /// \param theSelected the list of selected presentations + /// \param theHighlighted the list of highlighted presentations + /// \param theViewer a viewer to have the viewer the eye position + virtual void initSelection(ModuleBase_ISelection* theSelection, + ModuleBase_IViewer* /* theViewer*/); + + virtual void setPropertyPanel(ModuleBase_IPropertyPanel* theProp); + + ModuleBase_IPropertyPanel* propertyPanel() const { return myPropertyPanel; } + + /// Activates widgets by preselection if it is accepted + virtual bool activateByPreselection(); + signals: void started(); /// the operation is started void aborted(); /// the operation is aborted @@ -122,10 +136,6 @@ signals: void stopped(); /// the operation is aborted or committed void resumed(); /// the operation is resumed - /// Signals about the activating of the next widget - /// \param theWidget the previous active widget - void activateNextWidget(ModuleBase_ModelWidget* theWidget); - public slots: /// Starts operation /// Public slot. Verifies whether operation can be started and starts operation. @@ -188,11 +198,10 @@ signals: /// Creates an operation new feature /// \param theFlushMessage the flag whether the create message should be flushed - /// \returns the created feature - virtual FeaturePtr createFeature(const bool theFlushMessage = true); - - /// Sets the operation feature - void setFeature(FeaturePtr theFeature); + /// \param theCompositeFeature the feature that must be used for adding the created object or null + /// \returns the created + virtual FeaturePtr createFeature(const bool theFlushMessage = true, + CompositeFeaturePtr theCompositeFeature = CompositeFeaturePtr()); /// Verifies whether this operator can be commited. /// \return Returns TRUE if current operation can be committed, e.g. all parameters are filled @@ -201,6 +210,12 @@ signals: /// Returns pointer to the root document. boost::shared_ptr document() const; + /// Set value to the active widget + /// \param theFeature the feature + /// \param theX the horizontal coordinate + /// \param theY the vertical coordinate + /// \return true if the point is set + virtual bool setWidgetValue(ObjectPtr theFeature, double theX, double theY); protected: FeaturePtr myFeature; /// the operation feature to be handled @@ -217,6 +232,11 @@ signals: /// List of nested operations IDs QStringList myNestedFeatures; + /// List of pre-selected object + QList myPreSelection; + + /// Access to property panel + ModuleBase_IPropertyPanel* myPropertyPanel; }; #endif