X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLyXVC.h;h=b304730700bb9baad739418e9624883cb236cb60;hb=c5cab5a8f7e1f0f3996c1655c45a0fb88576dd5f;hp=5904f199e7a4db00848c3a20837b74150086d65b;hpb=1a48d5a96712c72879487542e3f1a7e61ce3f78c;p=lyx.git diff --git a/src/LyXVC.h b/src/LyXVC.h index 5904f199e7..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,10 +40,17 @@ 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 @@ -77,10 +85,22 @@ public: // by the next multiple messages on the top of the processed dispatch // machinery. - /// Unlock and commit changes. Returns log. - std::string checkIn(); + /// + 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(); @@ -138,6 +158,7 @@ public: 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 @@ -170,7 +191,7 @@ private: Buffer * owner_; /// - boost::scoped_ptr vcs; + unique_ptr vcs; };