X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLyXVC.h;h=b304730700bb9baad739418e9624883cb236cb60;hb=36edbffe2f71d050a09d5231c8428dd7575573fa;hp=55de93f103ff8f9f38d02031c1ea7017f6581f67;hpb=d89bde0652a3d95939ab59d1f10e25369e657bb0;p=lyx.git diff --git a/src/LyXVC.h b/src/LyXVC.h index 55de93f103..b304730700 100644 --- a/src/LyXVC.h +++ b/src/LyXVC.h @@ -12,7 +12,8 @@ #ifndef LYX_VC_H #define LYX_VC_H -#include +#include "support/docstring.h" +#include "support/unique_ptr.h" #include @@ -39,20 +40,30 @@ class Buffer; */ class LyXVC { public: + /// Return status of a command + enum CommandResult { + Cancelled, ///< command was cancelled + ErrorBefore, ///< error before executing command + ErrorCommand, ///< error while executing command + VCSuccess ///< command was executed successfully + }; /// LyXVC(); - /// - ~LyXVC(); + /// Status of the underlying VCS + docstring vcstatus() const; + /// Is \p fn under version control? + static bool fileInVC(support::FileName const & fn); /** Not a good name perhaps. This function should be called whenever LyX loads a file. This function then checks for a master VC file (for RCS this is *,v or RCS/ *,v ; for CVS this is CVS/Entries and .svn/entries for SVN) if this file or entry is found, the loaded file is assumed to be - under controll by VC, and the appropiate actions is taken. + under control by VC, and the appropiate actions is taken. Returns true if the file is under control by a VCS. */ bool file_found_hook(support::FileName const & fn); - /** This function should be run when a file is requested for loading, + /** Is \p fn under version control? + This function should be run when a file is requested for loading, but it does not exist. This function will then check for a VC master file with the same name (see above function). If this exists the user should be asked if he/her wants to checkout a version for @@ -64,7 +75,7 @@ public: /// void setBuffer(Buffer *); - /// Register the document as an VC file. + /// Register the document as a VC file. bool registrer(); @@ -74,19 +85,31 @@ public: // by the next multiple messages on the top of the processed dispatch // machinery. - /// Unlock and commit changes. Returns log. - std::string checkIn(); - /// Does the current VC supports this operation? + /// + std::string rename(support::FileName const &); + /// Does the current VC support this operation? + bool renameEnabled() const; + /// + std::string copy(support::FileName const &); + /// Does the current VC support this operation? + bool copyEnabled() const; + + /// Unlock and commit changes. + /// \p log is non-empty on success and may be empty on failure. + CommandResult checkIn(std::string & log); + /// Does the current VC support this operation? bool checkInEnabled() const; + /// Should a log message be provided for next checkin? + bool isCheckInWithConfirmation() const; /// Lock/update and prepare to edit document. Returns log. std::string checkOut(); - /// Does the current VC supports this operation? + /// Does the current VC support this operation? bool checkOutEnabled() const; /// Synchronize the whole archive with repository std::string repoUpdate(); - /// Does the current VC supports this operation? + /// Does the current VC support this operation? bool repoUpdateEnabled() const; /** @@ -102,7 +125,7 @@ public: /// Undo last check-in. void undoLast(); - /// Does the current VC supports this operation? + /// Does the current VC support this operation? bool undoLastEnabled() const; /** * Prepare revision rev of the file into newly created temporary file @@ -116,7 +139,7 @@ public: * for retrieving normal revisions (rev>0) or backtracking (rev<0). */ bool prepareFileRevision(std::string const & rev, std::string & f); - /// Does the current VC supports this operation? + /// Does the current VC support this operation? bool prepareFileRevisionEnabled(); /** @@ -132,9 +155,10 @@ public: * keep things in synchro once we would allow user to toggle * read-only flags. */ - void toggleReadOnly(); + std::string toggleReadOnly(); /// Is the document under administration by VCS? + /// returns false for unregistered documents in a path managed by VCS bool inUse() const; /// Returns the RCS + version number for messages @@ -167,7 +191,7 @@ private: Buffer * owner_; /// - boost::scoped_ptr vcs; + unique_ptr vcs; };