X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FBuffer.h;h=e342199b254705e033cc8e4310ea8ca6e71a5cd0;hb=1cbac6fcb40d6e0803198624c047769adec2fe09;hp=7b965de7c24764ae130639e4886641c390307d82;hpb=cf37ad8c80fac36565b98fd993e32736902f8396;p=lyx.git diff --git a/src/Buffer.h b/src/Buffer.h index 7b965de7c2..e342199b25 100644 --- a/src/Buffer.h +++ b/src/Buffer.h @@ -17,7 +17,6 @@ #include "support/unique_ptr.h" #include "support/strfwd.h" #include "support/types.h" -#include "support/FileNameList.h" #include #include @@ -39,9 +38,6 @@ class FuncRequest; class FuncStatus; class Inset; class InsetLabel; -class InsetRef; -class Font; -class Format; class Lexer; class Text; class LyXVC; @@ -52,10 +48,9 @@ class MacroNameSet; class MacroSet; class OutputParams; class otexstream; -class Paragraph; -class ParConstIterator; -class ParIterator; class ParagraphList; +class ParIterator; +class ParConstIterator; class TeXErrors; class TexRow; class TocBackend; @@ -70,6 +65,7 @@ class WorkAreaManager; namespace support { class DocFileName; class FileName; +class FileNameList; } // namespace support namespace graphics { @@ -97,8 +93,6 @@ typedef std::shared_ptr CloneList_ptr; * \author Lars Gullik Bjønnes */ -class MarkAsExporting; - class Buffer { public: /// What type of log will \c getLogName() return? @@ -265,7 +259,7 @@ public: bool autoSave() const; /// save emergency file /// \return a status message towards the user. - docstring emergencyWrite(); + docstring emergencyWrite() const; //FIXME:The following function should be private //private: @@ -335,9 +329,9 @@ public: OutputParams const & runparams_in, OutputWhat output = FullSource) const; /// - ExportStatus writeDocBookSource(odocstream & os, std::string const & filename, - OutputParams const & runparams_in, - OutputWhat output = FullSource) const; + ExportStatus writeDocBookSource(odocstream & os, + OutputParams const & runparams_in, + OutputWhat output = FullSource) const; /// ExportStatus makeLyXHTMLFile(support::FileName const & filename, OutputParams const & runparams_in) const; @@ -573,6 +567,8 @@ public: ParIterator par_iterator_end(); /// ParConstIterator par_iterator_end() const; + /// Is document empty ? + bool empty() const; // Position of the child buffer where it appears first in the master. DocIterator firstChildPosition(Buffer const * child); @@ -732,13 +728,17 @@ public: /// Updates screen labels and some other information associated with /// insets and paragraphs. Actually, it's more like a general "recurse /// through the Buffer" routine, that visits all the insets and paragraphs. - void updateBuffer() const { updateBuffer(UpdateMaster, InternalUpdate); } + void updateBuffer() const; /// \param scope: whether to start with the master document or just /// do this one. /// \param output: whether we are preparing for output. void updateBuffer(UpdateScope scope, UpdateType utype) const; /// - void updateBuffer(ParIterator & parit, UpdateType utype) const; + void updateBuffer(ParIterator & parit, UpdateType utype, bool const deleted = false) const; + /// Forces an updateBuffer() call + void forceUpdate() const; + /// Do we need to call updateBuffer()? + bool needUpdate() const; /// Spellcheck starting from \p from. /// \p from initial position, will then points to the next misspelled @@ -775,7 +775,7 @@ public: int wordCount() const; int charCount(bool with_blanks) const; - /// FIXME: dummy function for now + /// bool areChangesPresent() const; /// @@ -783,6 +783,13 @@ public: /// support::FileName getBibfilePath(docstring const & bibid) const; + /// routines for dealing with possible self-inclusion + void pushIncludedBuffer(Buffer const * buf) const; + void popIncludedBuffer() const; + bool isBufferIncluded(Buffer const * buf) const; +private: + void clearIncludeList() const; + private: friend class MarkAsExporting; /// mark the buffer as busy exporting something, or not