X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxvc.h;h=d282f395534edf2d5f1d812481e28f26cfbff07f;hb=2e57f2ff0ae7cd4a6efbf634ffe6d2f4379d9cfc;hp=cfb3529a61a2d89cd7df320f60dd3e9b6950ac7a;hpb=0eccdd1c3613e5170deb77b22174dd0afde833e9;p=lyx.git diff --git a/src/lyxvc.h b/src/lyxvc.h index cfb3529a61..d282f39553 100644 --- a/src/lyxvc.h +++ b/src/lyxvc.h @@ -1,31 +1,27 @@ // -*- C++ -*- -#ifndef _LYX_VC_H_ -#define _LYX_VC_H_ - -#ifdef __GNUG__ -#pragma interface -#endif +#ifndef LYX_VC_H +#define LYX_VC_H #include "LString.h" -#include "latexoptions.h" +class VCS; class Buffer; -/** Version Control for LyX. This is the class giving the verison control -features to LyX. It is - intended to support different kinds of version control, but at this point - we will only support RCS. Later CVS is a likely candidate for support. - The support in LyX is based loosely upon the version control in GNU Emacs, - but is not as extensive as that one. See examples/VC.lyx for a simple - tutorial and manual for the use of the version control system in LyX. - - LyXVC use this algorithm when it searches for VC files: - for RCS it searches for ,v and RCS/,v similar - should be done for CVS. By doing this there doesn't need to be any - special support for VC in the lyx format, and this is especially good - when the lyx format will be a subset of LaTeX. - */ +/** Version Control for LyX. + This is the class giving the verison control features to LyX. It is + intended to support different kinds of version control, but at this point + we will only support RCS. Later CVS is a likely candidate for support. + The support in LyX is based loosely upon the version control in GNU Emacs, + but is not as extensive as that one. See examples/VC.lyx for a simple + tutorial and manual for the use of the version control system in LyX. + + LyXVC use this algorithm when it searches for VC files: + for RCS it searches for ,v and RCS/,v similar + should be done for CVS. By doing this there doesn't need to be any + special support for VC in the lyx format, and this is especially good + when the lyx format will be a subset of LaTeX. +*/ class LyXVC { public: /// @@ -40,7 +36,7 @@ public: control by a VCS. */ bool file_found_hook(string const & fn); - + /** 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 @@ -51,9 +47,7 @@ public: static bool file_not_found_hook(string const & fn); /// - void scanMaster(); - /// - void setBuffer(Buffer*); + void buffer(Buffer *); /// Register the document as an VC file. void registrer(); @@ -70,73 +64,33 @@ public: /// Undo last check-in. void undoLast(); - /// - void viewLog(string const &); + /** + * Generate a log file and return the filename. + * It is the caller's responsibility to unlink the + * file after use. + */ + const string getLogFile() const; /// - void showLog(); - - /// void toggleReadOnly(); - + /// Is the document under administration by RCS? bool inUse(); /// Returns the version number. - string const getVersion() const; + //string const & version() const; + /// Returns the version number. + string const versionString() const; /// Returns the userid of the person who has locked the doc. - string const getLocker() const; -protected: -private: - /// - int doVCCommand(string const&); - - /** The master VC file. For RCS this is *,v or RCS/ *,v. master should - have full path. - */ - string master; - - /** The version of the VC file. I am not sure if this can be a - string of if it must be a - float/int. */ - string version; - - /// The user currently keeping the lock on the VC file. - string locker; + string const & locker() const; +private: /// - enum VCStatus { - /// - UNLOCKED, - /// - LOCKED - }; - - /// The status of the VC controlled file. - VCStatus vcstat; - - /// - enum Backend { - /// - UNKNOWN_VCS, - /// - RCS_VCS - }; - - /// The VC backend used. (so far this can only be RCS) - Backend backend; - - /// The buffer using this VC - Buffer *_owner; + Buffer * owner_; /// - FD_LaTeXLog *browser; // FD_LaTeXLog is just a browser with a - // close button. Unfortunately we can not use the standard callbacks. - /// - static void logClose(FL_OBJECT*, long); - /// - static void logUpdate(FL_OBJECT*, long); + VCS * vcs; }; #endif