X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModel%2FModel_Session.h;h=47e40262e3ae4cab165f84103d1467b9856724da;hb=6f77dfcd9833cdba0c583e6218350f1f7043eb8b;hp=72977752ad95671df6004834cc35e92f1007b8ea;hpb=9e869ede4d8c56262bb20534543c2bf56cd6a91b;p=modules%2Fshaper.git diff --git a/src/Model/Model_Session.h b/src/Model/Model_Session.h index 72977752a..47e40262e 100644 --- a/src/Model/Model_Session.h +++ b/src/Model/Model_Session.h @@ -1,3 +1,5 @@ +// Copyright (C) 2014-20xx CEA/DEN, EDF R&D + // File: Model_Session.hxx // Created: 20 Mar 2014 // Author: Mikhail PONIKAROV @@ -33,7 +35,6 @@ class Model_Session : public ModelAPI_Session, public Events_Listener //! Loads the OCAF document from the file. //! \param theFileName full name of the file to load - //! \param theStudyID identifier of the SALOME study to associate with loaded file //! \returns true if file was loaded successfully MODEL_EXPORT virtual bool load(const char* theFileName); @@ -47,7 +48,7 @@ class Model_Session : public ModelAPI_Session, public Events_Listener MODEL_EXPORT virtual void closeAll(); //! Starts a new operation (opens a tansaction) - MODEL_EXPORT virtual void startOperation(); + MODEL_EXPORT virtual void startOperation(const std::string& theId = ""); //! Finishes the previously started operation (closes the transaction) MODEL_EXPORT virtual void finishOperation(); //! Aborts the operation @@ -65,10 +66,17 @@ class Model_Session : public ModelAPI_Session, public Events_Listener MODEL_EXPORT virtual bool canRedo(); //! Redoes last operation MODEL_EXPORT virtual void redo(); + //! Returns stack of performed operations + MODEL_EXPORT virtual std::list undoList(); + //! Returns stack of rolled back operations + MODEL_EXPORT virtual std::list redoList(); /// Returns the root document of the application (that may contains sub-documents) MODEL_EXPORT virtual std::shared_ptr moduleDocument(); + /// Returns the document by ID, loads if not loaded yet. Returns null if no such document. + MODEL_EXPORT virtual std::shared_ptr document(std::string theDocID); + /// Return true if root document has been already created MODEL_EXPORT virtual bool hasModuleDocument(); @@ -97,6 +105,7 @@ class Model_Session : public ModelAPI_Session, public Events_Listener /// Returns the validators factory: the only one instance per application MODEL_EXPORT virtual ModelAPI_ValidatorsFactory* validators(); + /// Sets the flag to check modifications outside the transaction or not void setCheckTransactions(const bool theCheck) { myCheckTransactions = theCheck; @@ -110,7 +119,9 @@ class Model_Session : public ModelAPI_Session, public Events_Listener void LoadPluginsInfo(); /// Creates the feature object using plugins functionality - virtual FeaturePtr createFeature(std::string theFeatureID); + FeaturePtr createFeature(std::string theFeatureID, Model_Document* theDocOwner); + + friend class Model_Document; }; #endif