]> git.lyx.org Git - lyx.git/blobdiff - src/LyXVC.h
Add new variables lyx_build_date/time
[lyx.git] / src / LyXVC.h
index df6f273ffca72c03709d018d1bef2fb13d1fbe86..3036a396e3a8d4bb448cf7cfc044e986fdaee043 100644 (file)
@@ -39,10 +39,19 @@ 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();
+       /// 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
@@ -52,7 +61,7 @@ public:
          */
        bool file_found_hook(support::FileName const & fn);
 
-       /** Is \p fn in under version control?
+       /** 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
@@ -75,19 +84,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;
 
        /**
@@ -103,7 +124,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
@@ -117,7 +138,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();
 
        /**
@@ -133,9 +154,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