]> git.lyx.org Git - lyx.git/blobdiff - src/Buffer.h
fix a crash when the inset containing the new word at cursor is deleted
[lyx.git] / src / Buffer.h
index a13f0c5db0c671b1d6acfcf70c26e98a6fb5c718..19dd6eca7e8c4903cb9b0c6a36a26fdc293d9683 100644 (file)
 #define BUFFER_H
 
 #include "OutputEnums.h"
+#include "OutputParams.h"
 
 #include "insets/InsetCode.h"
 
 #include "support/strfwd.h"
 #include "support/types.h"
 
+#include <map>
 #include <list>
 #include <set>
 #include <string>
@@ -131,8 +133,8 @@ public:
         * FIXME: replace this method with support/FileMonitor.
         */
        enum CheckMethod {
-               checksum_method,  ///< Use file checksum
-               timestamp_method, ///< Use timestamp, and checksum if timestamp has changed
+               checksum_method, ///< Use file checksum
+               timestamp_method ///< Use timestamp, and checksum if timestamp has changed
        };
 
        ///
@@ -181,9 +183,9 @@ public:
        /// Renames and saves the buffer
        bool saveAs(support::FileName const & fn);
 
-       /// Write document to stream. Returns \c false if unsuccesful.
+       /// Write document to stream. Returns \c false if unsuccessful.
        bool write(std::ostream &) const;
-       /// Write file. Returns \c false if unsuccesful.
+       /// Write file. Returns \c false if unsuccessful.
        bool writeFile(support::FileName const &) const;
 
        /// \name Functions involved in reading files/strings.
@@ -446,12 +448,7 @@ public:
        /// 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.
-       /// Normally, this is done (more cheaply) in updateBuffer(), but there are
-       /// times when we need to force it to be done and don't need a full buffer
-       /// update. This is in GuiCitation and in changeRefsIfUnique() now.
        void reloadBibInfoCache() const;
-       /// Was the cache valid the last time we checked?
-       bool isBibInfoCacheValid() const;
        /// \return the bibliography information for this buffer's master,
        /// or just for it, if it isn't a child.
        BiblioInfo const & masterBibInfo() const;
@@ -547,7 +544,7 @@ public:
 
        /// Collect user macro names at loading time
        typedef std::set<docstring> UserMacroSet;
-       UserMacroSet usermacros;
+       mutable UserMacroSet usermacros;
 
        /// Replace the inset contents for insets which InsetCode is equal
        /// to the passed \p inset_code.
@@ -556,8 +553,8 @@ public:
 
        /// get source code (latex/docbook) for some paragraphs, or all paragraphs
        /// including preamble
-       void getSourceCode(odocstream & os, pit_type par_begin, pit_type par_end,
-               bool full_source) const;
+       void getSourceCode(odocstream & os, std::string const format,
+                          pit_type par_begin, pit_type par_end, bool full_source) const;
 
        /// Access to error list.
        /// This method is used only for GUI visualisation of Buffer related
@@ -605,6 +602,9 @@ public:
        std::string bufferFormat() const;
        /// return the default output format of the current backend
        std::string getDefaultOutputFormat() const;
+       /// return the output flavor of \p format or the default
+       OutputParams::FLAVOR getOutputFlavor(
+                 std::string const format = std::string()) const;
 
        ///
        bool doExport(std::string const & format, bool put_in_tempdir,
@@ -667,6 +667,10 @@ private:
        void setFileName(support::FileName const & fname);
        ///
        std::vector<std::string> backends() const;
+       /// A cache for the default flavors
+       typedef std::map<std::string, OutputParams::FLAVOR> DefaultFlavorCache;
+       ///
+       mutable DefaultFlavorCache default_flavors_;
        ///
        void getLanguages(std::set<Language const *> &) const;
        /// Checks whether any of the referenced bibfiles have changed since the