#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>
namespace lyx {
class BiblioInfo;
+class BibTeXInfo;
class BufferParams;
class DispatchResult;
class DocIterator;
* 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
};
///
/// 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.
/// 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;
- BiblioInfo & masterBibInfo();
- ///
- void fillWithBibKeys(BiblioInfo & keys) const;
+ /// collect bibliography info from the various insets in this buffer.
+ void collectBibKeys() const;
+ /// add some BiblioInfo to our cache
+ void addBiblioInfo(BiblioInfo const & bi) const;
+ /// add a single piece of bibliography info to our cache
+ void addBibTeXInfo(docstring const & key, BibTeXInfo const & bi) const;
///
void getLabelList(std::vector<docstring> &) const;
/// 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.
/// 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
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,
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