X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FVCBackend.h;h=dbcd84ca8151016dd84db7f979f94a7ca5f8952e;hb=bb80bd78f981c888efcc030168bd4e366b0ca6cd;hp=d44bb045f99fbfd2e6ce1c31536578c19efef462;hpb=f625f3e0dc48feb1f63ddfff13bdec4079829702;p=lyx.git diff --git a/src/VCBackend.h b/src/VCBackend.h index d44bb045f9..dbcd84ca81 100644 --- a/src/VCBackend.h +++ b/src/VCBackend.h @@ -4,7 +4,7 @@ * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * - * \author Lars Gullik Bjønnes + * \author Lars Gullik Bjønnes * * Full author contact details are available in file CREDITS. */ @@ -27,21 +27,30 @@ public: /// the status of the managed file enum VCStatus { UNLOCKED, - LOCKED + LOCKED, + NOLOCKING }; virtual ~VCS() {} /// register a file for version control virtual void registrer(std::string const & msg) = 0; - /// check in the current revision - virtual void checkIn(std::string const & msg) = 0; + /// check in the current revision, returns log + virtual std::string checkIn(std::string const & msg) = 0; // can be this operation processed in the current RCS? virtual bool checkInEnabled() = 0; - /// check out for editing - virtual void checkOut() = 0; + /// check out for editing, returns log + 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 @@ -72,13 +81,15 @@ protected: /// parse information from the version file virtual void scanMaster() = 0; + // GUI container for doVCCommandCall + int doVCCommand(std::string const & cmd, support::FileName const & path); /** - * doVCCommand - call out to the version control utility + * doVCCommandCall - call out to the version control utility * @param cmd the command to execute * @param path the path from which to execute * @return exit status */ - static int doVCCommand(std::string const & cmd, support::FileName const & path); + static int doVCCommandCall(std::string const & cmd, support::FileName const & path); /** * The master VC file. For RCS this is *,v or RCS/ *,v. master should @@ -116,14 +127,22 @@ public: virtual void registrer(std::string const & msg); - virtual void checkIn(std::string const & msg); + virtual std::string checkIn(std::string const & msg); virtual bool checkInEnabled(); - virtual void checkOut(); + virtual std::string checkOut(); virtual bool checkOutEnabled(); + virtual std::string repoUpdate(); + + virtual bool repoUpdateEnabled(); + + virtual std::string lockingToggle(); + + virtual bool lockingToggleEnabled(); + virtual void revert(); virtual void undoLast(); @@ -155,14 +174,22 @@ public: virtual void registrer(std::string const & msg); - virtual void checkIn(std::string const & msg); + virtual std::string checkIn(std::string const & msg); virtual bool checkInEnabled(); - virtual void checkOut(); + virtual std::string checkOut(); virtual bool checkOutEnabled(); + virtual std::string repoUpdate(); + + virtual bool repoUpdateEnabled(); + + virtual std::string lockingToggle(); + + virtual bool lockingToggleEnabled(); + virtual void revert(); virtual void undoLast(); @@ -197,14 +224,22 @@ public: virtual void registrer(std::string const & msg); - virtual void checkIn(std::string const & msg); + virtual std::string checkIn(std::string const & msg); virtual bool checkInEnabled(); - virtual void checkOut(); + virtual std::string checkOut(); virtual bool checkOutEnabled(); + virtual std::string repoUpdate(); + + virtual bool repoUpdateEnabled(); + + virtual std::string lockingToggle(); + + virtual bool lockingToggleEnabled(); + virtual void revert(); virtual void undoLast(); @@ -221,9 +256,19 @@ public: 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