#define BUFFER_H
#include "OutputEnums.h"
-#include "update_flags.h"
#include "insets/InsetCode.h"
class FuncRequest;
class FuncStatus;
class Inset;
-class InsetRef;
class InsetLabel;
+class InsetRef;
class Font;
class Format;
class Lexer;
*/
void validate(LaTeXFeatures &) const;
- /// Update the list of all bibfiles in use (including bibfiles
- /// of loaded child documents).
- void updateBibfilesCache(UpdateScope scope = UpdateMaster) const;
- /// 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.
+ /// Reference information is cached in the Buffer, so we do not
+ /// have to check or read things over and over.
+ ///
+ /// There are two caches.
+ ///
+ /// One is a cache of the BibTeX files from which reference info is
+ /// being gathered. This cache is PER BUFFER, and the cache for the
+ /// master essentially includes the cache for its children. This gets
+ /// invalidated when an InsetBibtex is created, deleted, or modified.
+ ///
+ /// The other is a cache of the reference information itself. This
+ /// exists only in the master buffer, and when it needs to be updated,
+ /// the children add their information to the master's cache.
+
/// Calling this method invalidates the cache and so requires a
/// re-read.
- void invalidateBibinfoCache();
+ void invalidateBibinfoCache() const;
+ /// This invalidates the cache of files we need to check.
+ void invalidateBibfileCache() const;
/// 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.)
+ /// Note that this operates on the master document.
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;
- /// \return the bibliography information for this buffer ONLY.
- BiblioInfo const & localBibInfo() const;
+ ///
+ void fillWithBibKeys(BiblioInfo & keys) const;
///
void getLabelList(std::vector<docstring> &) const;
///
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;
std::vector<Format const *> exportableFormats(bool only_viewable) const;
///
bool isExportableFormat(std::string const & format) const;
+ /// mark the buffer as busy exporting something, or not
+ void setExportStatus(bool e) const;
+ ///
+ bool isExporting() const;
///
typedef std::vector<std::pair<Inset *, ParIterator> > References;
/// \return progress if a new word was found.
int spellCheck(DocIterator & from, DocIterator & to,
WordLangTuple & word_lang, docstring_list & suggestions) const;
+ ///
+ void checkChildBuffers();
private:
///
bool fromString = false);
///
void getLanguages(std::set<Language const *> &) const;
+ /// Update the list of all bibfiles in use (including bibfiles
+ /// of loaded child documents).
+ void updateBibfilesCache(UpdateScope scope = UpdateMaster) const;
+ /// Return the list with all bibfiles in use (including bibfiles
+ /// of loaded child documents).
+ support::FileNameList const &
+ getBibfilesCache(UpdateScope scope = UpdateMaster) const;
/// Use the Pimpl idiom to hide the internals.
class Impl;