]> git.lyx.org Git - lyx.git/blobdiff - src/Buffer.h
Fix glitch in drawing fractions
[lyx.git] / src / Buffer.h
index 3f5ab2231bdc0d194d4bbccb0f22db3760028f1f..04539647c91fed35c658f0a4acbf37d2eb573438 100644 (file)
@@ -13,8 +13,8 @@
 #define BUFFER_H
 
 #include "OutputEnums.h"
-#include "OutputParams.h"
 
+#include "support/unique_ptr.h"
 #include "support/strfwd.h"
 #include "support/types.h"
 
@@ -50,6 +50,7 @@ class MacroData;
 class MacroNameSet;
 class MacroSet;
 class OutputParams;
+class otexstream;
 class Paragraph;
 class ParConstIterator;
 class ParIterator;
@@ -68,11 +69,12 @@ class WorkAreaManager;
 namespace support {
 class DocFileName;
 class FileName;
-class FileNameList;
+class FileNamePairList;
 }
 
 namespace graphics {
 class PreviewLoader;
+class Cache;
 }
 
 
@@ -324,13 +326,13 @@ public:
            method with a string stream if the output is supposed to go to a
            file. \code
            ofdocstream ofs;
-           otexstream os(ofs, texrow);
+           otexstream os(ofs);
            ofs.open("test.tex");
            writeLaTeXSource(os, ...);
            ofs.close();
            \endcode is NOT equivalent to \code
            odocstringstream oss;
-           otexstream os(oss, texrow);
+           otexstream os(oss);
            writeLaTeXSource(os, ...);
            ofdocstream ofs;
            ofs.open("test.tex");
@@ -415,6 +417,18 @@ public:
         */
        support::DocFileName getReferencedFileName(std::string const & fn) const;
 
+       /// Format a file name for LaTeX output (absolute or relative or filename only,
+       /// depending on file and context)
+       std::string const prepareFileNameForLaTeX(std::string const &,
+                                       std::string const &, bool nice) const;
+
+       /** Returns a vector of bibliography (*.bib) file paths suitable for the
+        *  output in the respective BibTeX/Biblatex macro
+        */
+       std::vector<docstring> const prepareBibFilePaths(OutputParams const &,
+                                   support::FileNamePairList const bibfilelist,
+                                   bool const extension = true) const;
+
        /** Returns the path where a local layout file lives.
         *  An empty string is returned for standard system and user layouts.
         *  If possible, it is always relative to the buffer path.
@@ -586,6 +600,8 @@ public:
        void updatePreviews() const;
        /// Remove any previewed LaTeX snippets associated with this buffer
        void removePreviews() const;
+       ///
+       graphics::Cache & graphicsCache() const;
 
        /// Our main text (inside the top InsetText)
        Text & text() const;
@@ -623,8 +639,8 @@ public:
 
        /// get source code (latex/docbook) for some paragraphs, or all paragraphs
        /// including preamble
-       /// returns NULL if Id to Row conversion is unsupported
-       std::auto_ptr<TexRow> getSourceCode(odocstream & os,
+       /// returns nullptr if Id to Row conversion is unsupported
+       unique_ptr<TexRow> getSourceCode(odocstream & os,
                        std::string const & format, pit_type par_begin,
                        pit_type par_end, OutputWhat output, bool master) const;
 
@@ -686,7 +702,7 @@ private:
        ExportStatus doExport(std::string const & target, bool put_in_tempdir,
                bool includeall, std::string & result_file) const;
        ///
-       ExportStatus preview(std::string const & format, bool includeall = false) const;
+       ExportStatus preview(std::string const & format, bool includeall) const;
        ///
        void setMathFlavor(OutputParams & op) const;
 
@@ -760,6 +776,12 @@ 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;
+       bool areChangesPresent() const;
+       void updateChangesPresent() const;
+
 private:
        friend class MarkAsExporting;
        /// mark the buffer as busy exporting something, or not
@@ -780,7 +802,7 @@ private:
        void updateBibfilesCache(UpdateScope scope = UpdateMaster) const;
        /// Return the list with all bibfiles in use (including bibfiles
        /// of loaded child documents).
-       support::FileNameList const &
+       support::FileNamePairList const &
                getBibfilesCache(UpdateScope scope = UpdateMaster) const;
        ///
        void collectChildren(ListOfBuffers & children, bool grand_children) const;