X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FBuffer.h;h=218f472744e20343b7142b41d71941d4b8277f19;hb=4080450341a4ed1cec0e4f72d9c917d2c7378157;hp=28cfbab9c00861d3666104ca5aa9d42c0b95b32d;hpb=138b23fac84930cdbfada0067c61480989041113;p=lyx.git diff --git a/src/Buffer.h b/src/Buffer.h index 28cfbab9c0..218f472744 100644 --- a/src/Buffer.h +++ b/src/Buffer.h @@ -12,11 +12,7 @@ #ifndef BUFFER_H #define BUFFER_H -#include "ErrorList.h" -#include "InsetList.h" - #include "DocIterator.h" -#include "ParagraphList_fwd.h" #include "support/FileName.h" #include "support/limited_stack.h" @@ -38,13 +34,14 @@ namespace lyx { class BufferParams; class ErrorItem; +class ErrorList; class FuncRequest; -class InsetBase; +class Inset; class InsetText; -class LyXFont; -class LyXLex; +class Font; +class Lexer; class LyXRC; -class LyXText; +class Text; class LyXVC; class LaTeXFeatures; class Language; @@ -52,17 +49,18 @@ class MacroData; class OutputParams; class ParConstIterator; class ParIterator; +class ParagraphList; +class StableDocIterator; class TeXErrors; class TexRow; class TocBackend; class Undo; -class StableDocIterator; /** The buffer object. * This is the buffer object. It contains all the informations about * a document loaded into LyX. - * The buffer object owns the LyXText (wrapped in an InsetText), which + * The buffer object owns the Text (wrapped in an InsetText), which * contains the individual paragraphs of the document. * * @@ -85,6 +83,22 @@ public: wrongversion ///< The version of the file does not match ours }; + /// Method to check if a file is externally modified, used by + /// isExternallyModified() + /** + * timestamp is fast but inaccurate. For example, the granularity + * of timestamp on a FAT filesystem is 2 second. Also, various operations + * may touch the timestamp of a file even when its content is unchanged. + * + * checksum is accurate but slow, which can be a problem when it is + * frequently used, or used for a large file on a slow (network) file + * system. + */ + enum CheckMethod { + checksum_method, ///< Use file check sum + timestamp_method, ///< Use timestamp, and checksum if timestamp has changed + }; + /** Constructor \param file \param b optional \c false by default @@ -111,18 +125,18 @@ public: bool readFile(support::FileName const & filename); /// read the header, returns number of unknown tokens - int readHeader(LyXLex & lex); + int readHeader(Lexer & lex); /** Reads a file without header. \param par if != 0 insert the file. \return \c false if file is not completely read. */ - bool readDocument(LyXLex &); + bool readDocument(Lexer &); /// void insertStringAsLines(ParagraphList & plist, pit_type &, pos_type &, - LyXFont const &, docstring const &, bool); + Font const &, docstring const &, bool); /// ParIterator getParFromID(int id) const; /// do we have a paragraph with this id? @@ -212,6 +226,9 @@ public: /// bool isDepClean(std::string const & name) const; + /// whether or not disk file has been externally modified + bool isExternallyModified(CheckMethod method) const; + /// mark the main lyx file as not needing saving void markClean() const; @@ -349,10 +366,10 @@ public: void fully_loaded(bool); /// Our main text (inside the top InsetText) - LyXText & text() const; + Text & text() const; /// Our top InsetText! - InsetBase & inset() const; + Inset & inset() const; // // Macro handling @@ -374,7 +391,7 @@ public: StableDocIterator getAnchor() const { return anchor_; } /// void changeRefsIfUnique(docstring const & from, docstring const & to, - InsetBase::Code code); + Inset::Code code); /// get source code (latex/docbook) for some paragraphs, or all paragraphs /// including preamble void getSourceCode(odocstream & os, pit_type par_begin, pit_type par_end, bool full_source); @@ -394,8 +411,8 @@ private: /** Inserts a file into a document \return \c false if method fails. */ - ReadStatus readFile(LyXLex &, support::FileName const & filename, - bool fromString = false); + ReadStatus readFile(Lexer &, support::FileName const & filename, + bool fromString = false); /// Use the Pimpl idiom to hide the internals. class Impl; @@ -410,9 +427,6 @@ private: /// A cache for the bibfiles (including bibfiles of loaded child /// documents), needed for appropriate update of natbib labels. mutable std::vector bibfilesCache_; - - /// Container for all sort of Buffer dependant errors. - std::map errorLists_; };