]> git.lyx.org Git - lyx.git/blobdiff - src/Buffer.h
Line breaks in tooltips
[lyx.git] / src / Buffer.h
index 50b273352fc70530e33ac41dca94633e90a1d1a8..7acf1f30428790a587f746b60869c09f72c9e3e9 100644 (file)
@@ -15,6 +15,7 @@
 #include "OutputEnums.h"
 #include "OutputParams.h"
 
+#include "support/unique_ptr.h"
 #include "support/strfwd.h"
 #include "support/types.h"
 
@@ -66,6 +67,7 @@ class WorkAreaManager;
 }
 
 namespace support {
+class DocFileName;
 class FileName;
 class FileNameList;
 }
@@ -267,6 +269,8 @@ private:
        /// of the temporary file to be read
        ReadStatus convertLyXFormat(support::FileName const & fn,
                support::FileName & tmpfile, int from_format);
+       /// get appropriate name for backing up files from older versions
+       support::FileName getBackupName() const;
        //@}
 
 public:
@@ -403,6 +407,15 @@ public:
        /// It is always an absolute path.
        std::string filePath() const;
 
+       /** 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.
+        */
+       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.
         *  If possible, it is always relative to the buffer path.
@@ -611,9 +624,10 @@ public:
 
        /// get source code (latex/docbook) for some paragraphs, or all paragraphs
        /// including preamble
-       void getSourceCode(odocstream & os, std::string const & format,
-                          pit_type par_begin, pit_type par_end, OutputWhat output,
-                          bool master) const;
+       /// 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;
 
        /// Access to error list.
        /// This method is used only for GUI visualisation of Buffer related
@@ -673,7 +687,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;
 
@@ -731,6 +745,9 @@ public:
        /// In all other cases, this is a no-op and name is returned unchanged.
        /// If a non-empty ext is given, the existence of name.ext is checked
        /// but the returned path will not contain this extension.
+       /// Similarly, when loading a document that was moved from the location
+       /// where it was saved, return the correct path relative to the new
+       /// location.
        std::string includedFilePath(std::string const & name,
                                std::string const & ext = empty_string()) const;
 
@@ -744,6 +761,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