#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.
method with a string stream if the output is supposed to go to a
file. \code
ofdocstream ofs;
+ otexstream os(ofs, texrow);
ofs.open("test.tex");
- writeLaTeXSource(ofs, ...);
+ writeLaTeXSource(os, ...);
ofs.close();
\endcode is NOT equivalent to \code
odocstringstream oss;
- writeLaTeXSource(oss, ...);
+ otexstream os(oss, texrow);
+ writeLaTeXSource(os, ...);
ofdocstream ofs;
ofs.open("test.tex");
ofs << oss.str();
ofs.close();
\endcode
*/
- void writeLaTeXSource(odocstream & os,
+ void writeLaTeXSource(otexstream & os,
std::string const & original_path,
OutputParams const &,
bool output_preamble = true,
/// reload all the BibTeX info.
/// Note that this operates on the master document.
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;
- ///
- 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