X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FVCBackend.h;h=dbcd84ca8151016dd84db7f979f94a7ca5f8952e;hb=e674f6bdc69bf3072d91d316ab4da3ef26343be2;hp=e86f258d700d5869c6251d4d8903c38d703dcb92;hpb=f1cba8ff64b369792fd49f5ddf90e8126ab476ac;p=lyx.git diff --git a/src/VCBackend.h b/src/VCBackend.h index e86f258d70..dbcd84ca81 100644 --- a/src/VCBackend.h +++ b/src/VCBackend.h @@ -27,7 +27,8 @@ public: /// the status of the managed file enum VCStatus { UNLOCKED, - LOCKED + LOCKED, + NOLOCKING }; virtual ~VCS() {} @@ -42,6 +43,14 @@ public: virtual std::string checkOut() = 0; // can be this operation processed in the current RCS? virtual bool checkOutEnabled() = 0; + /// synchronize with repository, returns log + virtual std::string repoUpdate() = 0; + // can be this operation processed in the current RCS? + virtual bool repoUpdateEnabled() = 0; + // toggle locking property of the file + virtual std::string lockingToggle() = 0; + // can be this operation processed in the current RCS? + virtual bool lockingToggleEnabled() = 0; /// revert current edits virtual void revert() = 0; /// FIXME @@ -126,6 +135,14 @@ public: virtual bool checkOutEnabled(); + virtual std::string repoUpdate(); + + virtual bool repoUpdateEnabled(); + + virtual std::string lockingToggle(); + + virtual bool lockingToggleEnabled(); + virtual void revert(); virtual void undoLast(); @@ -165,6 +182,14 @@ public: virtual bool checkOutEnabled(); + virtual std::string repoUpdate(); + + virtual bool repoUpdateEnabled(); + + virtual std::string lockingToggle(); + + virtual bool lockingToggleEnabled(); + virtual void revert(); virtual void undoLast(); @@ -207,6 +232,14 @@ public: virtual bool checkOutEnabled(); + virtual std::string repoUpdate(); + + virtual bool repoUpdateEnabled(); + + virtual std::string lockingToggle(); + + virtual bool lockingToggleEnabled(); + virtual void revert(); virtual void undoLast(); @@ -225,9 +258,17 @@ protected: virtual void scanMaster(); /// Check for messages in svn output. Returns error. std::string scanLogFile(support::FileName const & f, std::string & status); + /// checks locking policy and setup locked_mode_ + bool checkLockMode(); + /// is the loaded file locked? + bool isLocked() const; + /// acquire/release write lock for the current file + void fileLock(bool lock, support::FileName const & tmpf, std::string & status); private: support::FileName file_; + /// is the loaded file under locking policy? + bool locked_mode_; }; } // namespace lyx