X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxvc.h;h=e2cc2281384b011fc3a35ccd25ad3a17889e05f3;hb=74784ee97b67490c7bb82128bff76f0e8f94a139;hp=cfb3529a61a2d89cd7df320f60dd3e9b6950ac7a;hpb=0eccdd1c3613e5170deb77b22174dd0afde833e9;p=lyx.git diff --git a/src/lyxvc.h b/src/lyxvc.h index cfb3529a61..e2cc228138 100644 --- a/src/lyxvc.h +++ b/src/lyxvc.h @@ -1,31 +1,31 @@ // -*- C++ -*- -#ifndef _LYX_VC_H_ -#define _LYX_VC_H_ +#ifndef LYX_VC_H +#define LYX_VC_H #ifdef __GNUG__ #pragma interface #endif #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: /// @@ -51,9 +51,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,11 +68,12 @@ public: /// Undo last check-in. void undoLast(); - /// - void viewLog(string const &); - - /// - void showLog(); + /** + * 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 toggleReadOnly(); @@ -83,60 +82,17 @@ public: bool inUse(); /// Returns the version number. - string const getVersion() const; + string const & version() const; /// Returns the userid of the person who has locked the doc. - string const getLocker() const; -protected: + string const & locker() const; + private: /// - int doVCCommand(string const&); + Buffer * owner_; - /** 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; - - /// - 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; - - /// - 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