]> git.lyx.org Git - lyx.git/blobdiff - src/Buffer.h
Re-organization of Additional Features manual by John Hudson.
[lyx.git] / src / Buffer.h
index 7dd936514d716cc467ac4b49acdf9e3a0e850419..f488c4a4e0c22b68af55da0db84c3bcbae1b1864 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;
 }
@@ -268,7 +270,7 @@ private:
        ReadStatus convertLyXFormat(support::FileName const & fn,
                support::FileName & tmpfile, int from_format);
        /// get appropriate name for backing up files from older versions
-       std::string getBackupName() const;
+       support::FileName getBackupName() const;
        //@}
 
 public:
@@ -405,12 +407,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.
@@ -620,8 +624,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;
 
@@ -757,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