X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FBuffer.h;h=386625e18d2906896a943d84cf5777c5edf29378;hb=4db3e641ed6765e005343010cb90ee8af26f8f99;hp=cd0540cb7bfd029d6694448274840f7c2ecdbc68;hpb=cc1ce047984292b0509043f82165c506d15eb020;p=lyx.git diff --git a/src/Buffer.h b/src/Buffer.h index cd0540cb7b..386625e18d 100644 --- a/src/Buffer.h +++ b/src/Buffer.h @@ -15,8 +15,6 @@ #include "OutputEnums.h" #include "OutputParams.h" -#include "insets/InsetCode.h" - #include "support/strfwd.h" #include "support/types.h" @@ -94,6 +92,9 @@ typedef std::set CloneList; * minimal, probably not. * \author Lars Gullik Bjønnes */ + +class MarkAsExporting; + class Buffer { public: /// What type of log will \c getLogName() return? @@ -222,6 +223,10 @@ public: /// emergency or autosave files, one should use \c loadLyXFile. /// /sa loadLyXFile ReadStatus loadThisLyXFile(support::FileName const & fn); + /// import a new document from a string + bool importString(std::string const &, docstring const &, ErrorList &); + /// import a new file + bool importFile(std::string const &, support::FileName const &, ErrorList &); /// read a new document from a string bool readString(std::string const &); /// Reloads the LyX file @@ -390,7 +395,7 @@ public: /// Returns the buffer's filename. It is always an absolute path. std::string absFileName() const; - /// Returns the the path where the buffer lives. + /// Returns the path where the buffer lives. /// It is always an absolute path. std::string filePath() const; @@ -584,8 +589,7 @@ public: /// Replace the inset contents for insets which InsetCode is equal /// to the passed \p inset_code. - void changeRefsIfUnique(docstring const & from, docstring const & to, - InsetCode code); + void changeRefsIfUnique(docstring const & from, docstring const & to); /// get source code (latex/docbook) for some paragraphs, or all paragraphs /// including preamble @@ -660,10 +664,15 @@ public: /// typedef std::vector > References; - References & references(docstring const & label); + /// References const & references(docstring const & label) const; + /// + void addReference(docstring const & label, Inset * inset, ParIterator it); + /// void clearReferenceCache() const; + /// void setInsetLabel(docstring const & label, InsetLabel const * il); + /// InsetLabel const * insetLabel(docstring const & label) const; /// return a list of all used branches (also in children) @@ -708,11 +717,12 @@ public: int charCount(bool with_blanks) const; private: - class MarkAsExporting; friend class MarkAsExporting; /// mark the buffer as busy exporting something, or not void setExportStatus(bool e) const; + /// + References & getReferenceCache(docstring const & label); /// Change name of buffer. Updates "read-only" flag. void setFileName(support::FileName const & fname); /// @@ -742,6 +752,25 @@ private: }; +/// Helper class, to guarantee that the export status +/// gets reset properly. To use, simply create a local variable: +/// MarkAsExporting mex(bufptr); +/// and leave the rest to us. +class MarkAsExporting { +public: + MarkAsExporting(Buffer const * buf) : buf_(buf) + { + buf_->setExportStatus(true); + } + ~MarkAsExporting() + { + buf_->setExportStatus(false); + } +private: + Buffer const * const buf_; +}; + + } // namespace lyx #endif