]> git.lyx.org Git - lyx.git/blobdiff - src/Buffer.h
GMO for BG
[lyx.git] / src / Buffer.h
index b5a71a22ef8b7ee125f528d2ed5cd950003f0c6d..f1bd1f5e795ee7d85513c1217fda43971d8f875a 100644 (file)
@@ -70,7 +70,6 @@ class WorkAreaManager;
 namespace support {
 class DocFileName;
 class FileName;
-class FileNamePairList;
 } // namespace support
 
 namespace graphics {
@@ -133,6 +132,7 @@ public:
                // export
                ExportSuccess,
                ExportCancel,
+               ExportKilled,
                ExportError,
                ExportNoPathToFormat,
                ExportTexPathHasSpaces,
@@ -158,9 +158,9 @@ public:
        /// Destructor
        ~Buffer();
 
-       /// Clones the entire structure of which this Buffer is part, starting
-       /// with the master and cloning all the children, too.
-       Buffer * cloneFromMaster() const;
+       /// Clones the entire structure of which this Buffer is part, 
+       /// cloning all the children, too.
+       Buffer * cloneWithChildren() const;
        /// Just clones this single Buffer. For autosave.
        Buffer * cloneBufferOnly() const;
        ///
@@ -297,13 +297,13 @@ public:
        };
 
        /// Just a wrapper for writeLaTeXSource, first creating the ofstream.
-       bool makeLaTeXFile(support::FileName const & filename,
+       ExportStatus makeLaTeXFile(support::FileName const & filename,
                           std::string const & original_path,
                           OutputParams const &,
                           OutputWhat output = FullSource) const;
        /** Export the buffer to LaTeX.
-           If \p os is a file stream, and params().inputenc is "auto" or
-           "default", and the buffer contains text in different languages
+           If \p os is a file stream, and params().inputenc is "auto-legacy" or
+           "auto-legacy-plain", and the buffer contains text in different languages
            with more than one encoding, then this method will change the
            encoding associated to \p os. Therefore you must not call this
            method with a string stream if the output is supposed to go to a
@@ -323,23 +323,23 @@ public:
            ofs.close();
            \endcode
         */
-       void writeLaTeXSource(otexstream & os,
+       ExportStatus writeLaTeXSource(otexstream & os,
                           std::string const & original_path,
                           OutputParams const &,
                           OutputWhat output = FullSource) const;
        ///
-       void makeDocBookFile(support::FileName const & filename,
+       ExportStatus makeDocBookFile(support::FileName const & filename,
                             OutputParams const & runparams_in,
                             OutputWhat output = FullSource) const;
        ///
-       void writeDocBookSource(odocstream & os, std::string const & filename,
+       ExportStatus writeDocBookSource(odocstream & os, std::string const & filename,
                             OutputParams const & runparams_in,
                             OutputWhat output = FullSource) const;
        ///
-       void makeLyXHTMLFile(support::FileName const & filename,
+       ExportStatus makeLyXHTMLFile(support::FileName const & filename,
                             OutputParams const & runparams_in) const;
        ///
-       void writeLyXHTMLSource(odocstream & os,
+       ExportStatus writeLyXHTMLSource(odocstream & os,
                             OutputParams const & runparams_in,
                             OutputWhat output = FullSource) const;
        /// returns the main language for the buffer (document)
@@ -413,10 +413,10 @@ public:
                                        std::string const &, bool nice) const;
 
        /** Returns a vector of bibliography (*.bib) file paths suitable for the
-        *  output in the respective BibTeX/Biblatex macro
+        *  output in the respective BibTeX/Biblatex macro and potential individual encoding
         */
-       std::vector<docstring> const prepareBibFilePaths(OutputParams const &,
-                                   support::FileNamePairList const bibfilelist,
+       std::vector<std::pair<docstring, std::string>> const prepareBibFilePaths(OutputParams const &,
+                                   const docstring_list & bibfilelist,
                                    bool const extension = true) const;
 
        /** Returns the path where a local layout file lives.
@@ -500,11 +500,13 @@ public:
        /// Calling this method invalidates the cache and so requires a
        /// re-read.
        void invalidateBibinfoCache() const;
+       /// Clear the bibfiles cache
+       void clearBibFileCache() const;
        /// Updates the cached bibliography information, checking first to see
        /// whether the cache is valid. If so, we do nothing. If not, then we
        /// reload all the BibTeX info.
        /// Note that this operates on the master document.
-       void reloadBibInfoCache() const;
+       void reloadBibInfoCache(bool const force = false) const;
        /// \return the bibliography information for this buffer's master,
        /// or just for it, if it isn't a child.
        BiblioInfo const & masterBibInfo() const;
@@ -696,18 +698,28 @@ public:
        ///
        bool isExporting() const;
 
-       ///
+       /// A collection of InsetRef insets and their position in the buffer
        typedef std::vector<std::pair<Inset *, ParIterator> > References;
-       ///
+       /// Get all InsetRef insets and their positions associated with
+       /// the InsetLabel with the label string \p label
        References const & references(docstring const & label) const;
-       ///
+       /// Add an InsetRef at position \p it to the Insetlabel
+       /// with the label string \p label
        void addReference(docstring const & label, Inset * inset, ParIterator it);
-       ///
+       /// Clear the whole reference cache
        void clearReferenceCache() const;
-       ///
-       void setInsetLabel(docstring const & label, InsetLabel const * il);
-       ///
-       InsetLabel const * insetLabel(docstring const & label) const;
+       /// Set the InsetLabel for a given \p label string. \p active
+       /// determines whether this is an active label (see @ref activeLabel)
+       void setInsetLabel(docstring const & label, InsetLabel const * il,
+                          bool const active);
+       /// \return the InsetLabel associated with this \p label string
+       /// If \p active is true we only return active labels
+       /// (see @ref activeLabel)
+       InsetLabel const * insetLabel(docstring const & label,
+                                     bool const active = false) const;
+       /// \return true if this \param label is an active label.
+       /// Inactive labels are currently deleted labels (in ct mode)
+       bool activeLabel(docstring const & label) const;
 
        /// return a list of all used branches (also in children)
        void getUsedBranches(std::list<docstring> &, bool const from_master = false) const;
@@ -764,7 +776,9 @@ public:
        bool areChangesPresent() const;
        void updateChangesPresent() const;
        ///
-       void registerBibfiles(support::FileNamePairList const & bf) const;
+       void registerBibfiles(docstring_list const & bf) const;
+       ///
+       support::FileName getBibfilePath(docstring const & bibid) const;
 
 private:
        friend class MarkAsExporting;
@@ -783,7 +797,7 @@ private:
        void checkIfBibInfoCacheIsValid() const;
        /// Return the list with all bibfiles in use (including bibfiles
        /// of loaded child documents).
-       support::FileNamePairList const &
+       docstring_list const &
                getBibfiles(UpdateScope scope = UpdateMaster) const;
        ///
        void collectChildren(ListOfBuffers & children, bool grand_children) const;