Salome HOME
Linux compilation and isPreviewNeeded method implementation.
[modules/shaper.git] / src / ModelAPI / ModelAPI_Session.h
index 619509dd2cfdeb97f5d75ec53db32c7556aed5c5..5c927e7d3eec56226d1b56c43e9e9cbe23acf550 100644 (file)
@@ -45,7 +45,8 @@ class MODELAPI_EXPORT ModelAPI_Session
   virtual void closeAll() = 0;
 
   //! Starts a new operation (opens a tansaction)
-  virtual void startOperation() = 0;
+  //! \param theId of operation for history (optional)
+  virtual void startOperation(const std::string& theId = "") = 0;
   //! Finishes the previously started operation (closes the transaction)
   virtual void finishOperation() = 0;
   //! Aborts the operation 
@@ -63,6 +64,10 @@ class MODELAPI_EXPORT ModelAPI_Session
   virtual bool canRedo() = 0;
   //! Redoes last operation
   virtual void redo() = 0;
+  //! Returns stack of performed operations (from last to first)
+  virtual std::list<std::string> undoList() = 0;
+  //! Returns stack of rolled back operations (from last rolled back to first)
+  virtual std::list<std::string> redoList() = 0;
 
   /// Registers the plugin that creates features.
   /// It is obligatory for each plugin to call this function on loading to be found by 
@@ -101,12 +106,8 @@ class MODELAPI_EXPORT ModelAPI_Session
   }
 
  protected:
-  /// Creates the feature object using plugins functionality
-  virtual std::shared_ptr<ModelAPI_Feature> createFeature(std::string theFeatureID) = 0;
   /// Sets the session interface implementation (once per application launch)
   static void setSession(std::shared_ptr<ModelAPI_Session> theManager);
-
-  friend class Model_Document;
 };
 
 typedef std::shared_ptr<ModelAPI_Session> SessionPtr;