]> git.lyx.org Git - lyx.git/blobdiff - src/LyXVC.h
THINSPACE is nonbreakable (i.e., 0x202f, not 0x2009)
[lyx.git] / src / LyXVC.h
index a860bda8ec289d7e9e27845a80cea914e2948b12..fd223570172ee0338967ab3e88d7cb9e2f2e1e01 100644 (file)
@@ -12,7 +12,8 @@
 #ifndef LYX_VC_H
 #define LYX_VC_H
 
-#include <boost/scoped_ptr.hpp>
+#include "support/docstring.h"
+#include "support/unique_ptr.h"
 
 #include <string>
 
@@ -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,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;
 
        /**
@@ -105,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
@@ -119,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();
 
        /**
@@ -135,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
@@ -155,7 +176,8 @@ public:
                Tree = 2,
                Author = 3,
                Date = 4,
-               Time = 5
+               Time = 5,
+               FileAbbrev = 6
        };
 
        /**
@@ -170,7 +192,7 @@ private:
        Buffer * owner_;
 
        ///
-       boost::scoped_ptr<VCS> vcs;
+       unique_ptr<VCS> vcs_;
 };