X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FBuffer.h;h=297e63208ce126bf5110d47a62f428f3292ffd73;hb=acc5af9912533261c37795971af269f77317f14f;hp=84dee28eee047b25fbc654a9a0f3248b7dd7397d;hpb=7cdf1a0be648d3d182b423cc897cb0e96815ceda;p=lyx.git diff --git a/src/Buffer.h b/src/Buffer.h index 84dee28eee..297e63208c 100644 --- a/src/Buffer.h +++ b/src/Buffer.h @@ -125,11 +125,17 @@ public: }; /// Constructor - explicit Buffer(std::string const & file, bool b = false); + explicit Buffer(std::string const & file, bool readonly = false, + Buffer const * cloned_buffer = 0); /// Destructor ~Buffer(); + /// + Buffer * clone() const; + /// + bool isClone() const; + /** High-level interface to buffer functionality. This function parses a command string and executes it. */ @@ -180,6 +186,8 @@ public: /// Loads LyX file \c filename into buffer, * and return success bool loadLyXFile(support::FileName const & s); + /// Reloads the LyX file + bool reload(); /// Fill in the ErrorList with the TeXErrors void bufferErrors(TeXErrors const &, ErrorList &) const; @@ -315,6 +323,9 @@ public: /// return a vector with all children (and grandchildren) std::vector getChildren(bool grand_children = true) const; + /// Add all children (and grandchildren) to supplied vector + void getChildren(std::vector & children, bool grand_children = true) const; + /// Is buffer read-only? bool isReadonly() const; @@ -339,15 +350,23 @@ public: */ void validate(LaTeXFeatures &) const; - /// Update the cache with all bibfiles in use (including bibfiles + /// Update the list of all bibfiles in use (including bibfiles /// of loaded child documents). void updateBibfilesCache(UpdateScope scope = UpdateMaster) const; - /// - void invalidateBibinfoCache(); - /// Return the cache with all bibfiles in use (including bibfiles + /// Return the list with all bibfiles in use (including bibfiles /// of loaded child documents). support::FileNameList const & getBibfilesCache(UpdateScope scope = UpdateMaster) const; + /// Information from BibTeX databases is cached in the Buffer, so + /// we do not have to read the file over and over. + /// Calling this method invalidates the cache and so requires a + /// re-read. + void invalidateBibinfoCache(); + /// Updates the cached bibliography information. + /// Note that you MUST call this method to update the cache. It will + /// not happen otherwise. (Currently, it is called at the start of + /// updateLabels() and from GuiCitation.) + void checkBibInfoCache() const; /// \return the bibliography information for this buffer's master, /// or just for it, if it isn't a child. BiblioInfo const & masterBibInfo() const; @@ -461,7 +480,9 @@ public: Undo & undo(); /// This function is called when the buffer is changed. - void changed() const; + void changed(bool update_metrics) const; + /// + void setChild(DocIterator const & dit, Buffer * child); /// void updateTocItem(std::string const &, DocIterator const &) const; /// This function is called when the buffer structure is changed. @@ -500,15 +521,18 @@ public: /// bool doExport(std::string const & format, bool put_in_tempdir, - std::string & result_file) const; + bool includeall, std::string & result_file) const; /// - bool doExport(std::string const & format, bool put_in_tempdir) const; + bool doExport(std::string const & format, bool put_in_tempdir, + bool includeall = false) const; /// - bool preview(std::string const & format) const; + bool preview(std::string const & format, bool includeall = false) const; /// bool isExportable(std::string const & format) const; /// std::vector exportableFormats(bool only_viewable) const; + /// + bool isExportableFormat(std::string const & format) const; /// typedef std::vector > References; @@ -525,10 +549,16 @@ public: // FIXME This really shouldn't be needed, but at the moment it's not // clear how to do it just for the individual pieces we need. void setBuffersForInsets() const; - /// - void updateLabels(UpdateScope = UpdateMaster) const; - /// - void updateLabels(ParIterator & parit) const; + /// 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 updateLabels() const { updateLabels(UpdateMaster, false); } + /// \param scope: whether to start with the master document or just + /// do this one. + /// \param output: whether we are preparing for output. + void updateLabels(UpdateScope scope, bool output) const; + /// + void updateLabels(ParIterator & parit, bool output) const; /// Spellcheck starting from \p from. /// \p from initial position, will then points to the next misspelled @@ -572,7 +602,7 @@ private: class Impl; /// The pointer never changes although *pimpl_'s contents may. Impl * const d; - + /// frontend::GuiBufferDelegate * gui_; /// This function is called when the buffer structure is changed.