X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FBuffer.h;h=01537b9b6362908609fa9c2faef240dab10a2461;hb=69036ced3765f40048d62be800c98af3ea2d1b4a;hp=6b13ee0622cf0c60be4bd2bd75f61851250ef566;hpb=570f96bc6e9af6c488234c7f261b320844f97dc0;p=lyx.git diff --git a/src/Buffer.h b/src/Buffer.h index 6b13ee0622..01537b9b63 100644 --- a/src/Buffer.h +++ b/src/Buffer.h @@ -12,13 +12,12 @@ #ifndef BUFFER_H #define BUFFER_H -#include "update_flags.h" +#include "OutputEnums.h" #include "insets/InsetCode.h" #include "support/strfwd.h" #include "support/types.h" -#include "support/SignalSlot.h" #include #include @@ -34,17 +33,15 @@ class BufferSet; class DispatchResult; class DocIterator; class docstring_list; -class ErrorItem; class ErrorList; class FuncRequest; class FuncStatus; class Inset; -class InsetRef; class InsetLabel; +class InsetRef; class Font; class Format; class Lexer; -class LyXRC; class Text; class LyXVC; class LaTeXFeatures; @@ -186,6 +183,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; @@ -247,8 +246,6 @@ public: /// return true if the main lyx file does not need saving bool isClean() const; /// - bool isBakClean() const; - /// bool isDepClean(std::string const & name) const; /// whether or not disk file has been externally modified @@ -260,9 +257,6 @@ public: /// mark the main lyx file as not needing saving void markClean() const; - /// - void markBakClean() const; - /// void markDepClean(std::string const & name); @@ -348,15 +342,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 + /// updateBuffer() 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; @@ -370,6 +372,8 @@ public: /// bool isMultiLingual() const; + /// + std::set getLanguages() const; /// BufferParams & params(); @@ -472,6 +476,8 @@ public: /// This function is called when the buffer is changed. 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. void structureChanged() const; @@ -479,8 +485,6 @@ public: void errors(std::string const & err, bool from_master = false) const; /// This function is called when the buffer busy status change. void setBusy(bool on) const; - /// This function is called when the buffer readonly status change. - void setReadOnly(bool on) const; /// Update window titles of all users. void updateTitles() const; /// Reset autosave timers for all users. @@ -500,7 +504,7 @@ public: /// void moveAutosaveFile(support::FileName const & old) const; /// - support::FileName getAutosaveFilename() const; + support::FileName getAutosaveFileName() const; /// return the format of the buffer on a string std::string bufferFormat() const; @@ -509,11 +513,12 @@ 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; /// @@ -522,7 +527,7 @@ public: bool isExportableFormat(std::string const & format) const; /// - typedef std::vector > References; + typedef std::vector > References; References & references(docstring const & label); References const & references(docstring const & label) const; void clearReferenceCache() const; @@ -539,13 +544,13 @@ 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 updateLabels() const { updateLabels(UpdateMaster, false); } + void updateBuffer() const { updateBuffer(UpdateMaster, InternalUpdate); } /// \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 updateBuffer(UpdateScope scope, UpdateType utype) const; /// - void updateLabels(ParIterator & parit, bool output) const; + void updateBuffer(ParIterator & parit, UpdateType utype) const; /// Spellcheck starting from \p from. /// \p from initial position, will then points to the next misspelled @@ -555,21 +560,10 @@ public: /// \return progress if a new word was found. int spellCheck(DocIterator & from, DocIterator & to, WordLangTuple & word_lang, docstring_list & suggestions) const; - -private: - /// search for macro in local (buffer) table or in children - MacroData const * getBufferMacro(docstring const & name, - DocIterator const & pos) const; - /** Update macro table starting with position of it - \param it in some text inset - */ - void updateMacros(DocIterator & it, - DocIterator & scope) const; - /// - void setLabel(ParIterator & it) const; /// - void collectRelatives(BufferSet & bufs) const; + void checkChildBuffers(); +private: /// bool readFileHelper(support::FileName const & s); /// @@ -579,29 +573,13 @@ private: */ ReadStatus readFile(Lexer &, support::FileName const & filename, bool fromString = false); - - /** If we have branches that use the file suffix - feature, return the file name with suffix appended. - */ - support::FileName exportFileName() const; + /// + void getLanguages(std::set &) const; /// Use the Pimpl idiom to hide the internals. 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. - Signal structureChanged_; - /// This function is called when some parsing error shows up. - //Signal errors(std::string const &) = 0; - /// This function is called when some message shows up. - //Signal message(docstring const &) = 0; - /// This function is called when the buffer busy status change. - //Signal setBusy(bool) = 0; - /// Reset autosave timers for all users. - Signal resetAutosaveTimers_; };