X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FBuffer.h;h=e8f0aea8750ccc0706a6e7b2ff0f2aa933a4ed32;hb=dab71087cf2954b77d3d2c0e67b868f9be82fba9;hp=f1bd1f5e795ee7d85513c1217fda43971d8f875a;hpb=27ba6f282dc36b5cb500bbd51c2f87fd697d0626;p=lyx.git diff --git a/src/Buffer.h b/src/Buffer.h index f1bd1f5e79..e8f0aea875 100644 --- a/src/Buffer.h +++ b/src/Buffer.h @@ -82,6 +82,7 @@ class Buffer; typedef std::list ListOfBuffers; /// a list of Buffers we cloned typedef std::set CloneList; +typedef std::shared_ptr CloneList_ptr; /** The buffer object. @@ -153,7 +154,7 @@ public: /// Constructor explicit Buffer(std::string const & file, bool readonly = false, - Buffer const * cloned_buffer = 0); + Buffer const * cloned_buffer = nullptr); /// Destructor ~Buffer(); @@ -231,7 +232,7 @@ private: /// typedef std::map BufferMap; /// - void cloneWithChildren(BufferMap &, CloneList *) const; + void cloneWithChildren(BufferMap &, CloneList_ptr) const; /// save checksum of the given file. void saveCheckSum() const; /// read a new file @@ -287,6 +288,8 @@ private: public: /// Fill in the ErrorList with the TeXErrors void bufferErrors(TeXErrors const &, ErrorList &) const; + /// Fill in the Citation/Reference ErrorList from the TeXErrors + void bufferRefs(TeXErrors const &, ErrorList &) const; enum OutputWhat { FullSource, @@ -332,9 +335,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; @@ -345,7 +348,7 @@ public: /// returns the main language for the buffer (document) Language const * language() const; /// get l10n translated to the buffers language - docstring const B_(std::string const & l10n) const; + docstring B_(std::string const & l10n) const; /// int runChktex(); @@ -437,7 +440,7 @@ public: std::string latexName(bool no_path = true) const; /// Get the name and type of the log. - std::string logName(LogType * type = 0) const; + std::string logName(LogType * type = nullptr) const; /// Set document's parent Buffer. void setParent(Buffer const *); @@ -459,10 +462,10 @@ public: /// the children appear. ListOfBuffers getChildren() const; - /// \return a list of all descendents of this Buffer (children, + /// \return a list of all descendants of this Buffer (children, /// grandchildren, etc). this list has no duplicates and is in /// the order in which the children appear. - ListOfBuffers getDescendents() const; + ListOfBuffers getDescendants() const; /// Collect all relative buffers, in the order in which they appear. /// I.e., the "root" Buffer is first, then its first child, then any @@ -622,7 +625,7 @@ public: mutable UserMacroSet usermacros; /// Replace the inset contents for insets which InsetCode is equal - /// to the passed \p inset_code. + /// to the passed \p inset_code. Handles undo. void changeRefsIfUnique(docstring const & from, docstring const & to); /// get source code (latex/docbook) for some paragraphs, or all paragraphs @@ -679,7 +682,9 @@ public: ExportStatus preview(std::string const & format) const; /// true if there was a previous preview this session of this buffer and /// there was an error on the previous preview of this buffer. - bool lastPreviewError() const; + bool freshStartRequired() const; + /// + void requireFreshStart(bool const b) const; private: /// @@ -733,7 +738,7 @@ public: /// \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; /// Spellcheck starting from \p from. /// \p from initial position, will then points to the next misspelled @@ -770,16 +775,21 @@ public: int wordCount() const; int charCount(bool with_blanks) const; - // this is const because it does not modify the buffer's real contents, - // only the mutable flag. - void setChangesPresent(bool) const; + /// FIXME: dummy function for now bool areChangesPresent() const; - void updateChangesPresent() const; + /// void registerBibfiles(docstring_list const & bf) const; /// 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