]> git.lyx.org Git - lyx.git/blobdiff - src/Buffer.h
Remove hardcoded values
[lyx.git] / src / Buffer.h
index 74507909df231224445ac5b0b0bd105363839613..0cb70266374682815ac5f271ff957329c09e62d6 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;
@@ -66,12 +67,14 @@ class WorkAreaManager;
 }
 
 namespace support {
+class DocFileName;
 class FileName;
 class FileNameList;
 }
 
 namespace graphics {
 class PreviewLoader;
+class Cache;
 }
 
 
@@ -323,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");
@@ -405,12 +408,14 @@ public:
        /// It is always an absolute path.
        std::string filePath() const;
 
-       /** Returns the path where the document was last saved.
-        *  It may be different from filePath() if the document was later
-        *  manually moved to a different location.
-        *  It is always an absolute path.
+       /** Contructs a file name of a referenced file (child doc, included graphics etc).
+        *  Absolute names are returned as is. If the name is relative, it is
+        *  interpreted relative to filePath() if the file exists, otherwise
+        *  relative to the original path where the document was last saved.
+        *  The original path may be different from filePath() if the document was
+        *  later manually moved to a different location.
         */
-       std::string originFilePath() const;
+       support::DocFileName getReferencedFileName(std::string const & fn) const;
 
        /** Returns the path where a local layout file lives.
         *  An empty string is returned for standard system and user layouts.
@@ -583,6 +588,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;
@@ -620,8 +627,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;
 
@@ -683,7 +690,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;
 
@@ -757,6 +764,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