X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxvc.h;h=30110b2bbe324b677df9d202ded0912f31c05208;hb=2c3ae20fc2ed8a1e9d8e46be5b20d3fc88b48dfc;hp=dc5e3eb76d25ccfbbed845bd1c360821db78d18b;hpb=27de1486ca34aaad446adb798d71a77d6f6304da;p=lyx.git diff --git a/src/lyxvc.h b/src/lyxvc.h index dc5e3eb76d..30110b2bbe 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: /// @@ -39,8 +39,8 @@ public: the appropiate actions is taken. Returns true if the file is under control by a VCS. */ - bool file_found_hook(LString const & fn); - + 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 @@ -48,12 +48,10 @@ public: viewing/editing. Returns true if the file is under control by a VCS and the user wants to view/edit it. */ - static bool file_not_found_hook(LString const & fn); + 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 +68,33 @@ public: /// Undo last check-in. void undoLast(); - /// - void viewLog(LString 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. - LString 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. - LString const getLocker() const; -protected: -private: - /// - int doVCCommand(LString const&); - - /** The master VC file. For RCS this is *,v or RCS/ *,v. master should - have full path. - */ - LString 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. */ - LString version; - - /// The user currently keeping the lock on the VC file. - LString 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