Salome HOME
Merge branch 'master' of newgeom:newgeom
[modules/shaper.git] / src / XGUI / XGUI_OperationMgr.h
index ef06d7da70ecb43514771aded8985b5825d71edb..41323570ec46fc3e6fcf12566182c9c84e0e48a6 100644 (file)
@@ -34,10 +34,19 @@ public:
   /// Returns the current operation or NULL
   /// \return the current operation
   ModuleBase_Operation* currentOperation() const;
-  /// Sets the current operation or NULL
-  /// \return the current operation
+  /// Returns true is operation manager has at least one non-null operation.
+  bool hasOperation() const;
+  /// Returns number of operations in the stack
+  int operationsCount() const;
+  /// Start the operation and append it to the stack of operations
+  /// \param theOperation the started operation
+  /// \return the state whether the current operation is started
   bool startOperation(ModuleBase_Operation* theOperation);
 
+  /// Abort the operation and append it to the stack of operations
+  /// \return the state whether the current operation is aborted
+  bool abortOperation();
+
 signals:
   /// Signal about an operation is started. It is emitted after the start() of operation is done.
   void operationStarted();
@@ -46,11 +55,20 @@ signals:
   void operationStopped(ModuleBase_Operation* theOperation);
 
 protected:
+  /// Sets the current operation or NULL
+  /// \param theOperation the started operation
+  /// \param isCheckBeforeStart the flag whether to check whether the operation can be started
+  /// \return the state whether the operation is resumed
+  void resumeOperation(ModuleBase_Operation* theOperation);
+
   /// Returns whether the operation can be started. Check if there is already started operation and
   /// the granted parameter of the launched operation
   /// \param theOperation an operation to check
   bool canStartOperation(ModuleBase_Operation* theOperation);
 
+  /// Returns whether the operation can be stopped.
+  bool canStopOperation();
+
 protected slots:
   /// Slot that is called by an operation stop. Removes the stopped operation form the stack.
   /// If there is a suspended operation, restart it.