-string Buffer::bufferFormat() const
-{
- string format = params().documentClass().outputFormat();
- if (format == "latex") {
- if (params().useNonTeXFonts)
- return "xetex";
- if (params().encoding().package() == Encoding::japanese)
- return "platex";
- }
- return format;
-}
-
-
-string Buffer::getDefaultOutputFormat() const
-{
- if (!params().default_output_format.empty()
- && params().default_output_format != "default")
- return params().default_output_format;
- if (isDocBook()
- || params().useNonTeXFonts
- || params().encoding().package() == Encoding::japanese) {
- vector<Format const *> const formats = exportableFormats(true);
- if (formats.empty())
- return string();
- // return the first we find
- return formats.front()->name();
- }
- return lyxrc.default_view_format;
-}
-
-
-OutputParams::FLAVOR Buffer::getOutputFlavor(string const format) const
-{
- string const dformat = (format.empty() || format == "default") ?
- getDefaultOutputFormat() : format;
- DefaultFlavorCache::const_iterator it =
- default_flavors_.find(dformat);
-
- if (it != default_flavors_.end())
- return it->second;
-
- OutputParams::FLAVOR result = OutputParams::LATEX;
-
- if (dformat == "xhtml")
- result = OutputParams::HTML;
- else {
- // Try to determine flavor of default output format
- vector<string> backs = backends();
- if (find(backs.begin(), backs.end(), dformat) == backs.end()) {
- // Get shortest path to format
- Graph::EdgePath path;
- for (vector<string>::const_iterator it = backs.begin();
- it != backs.end(); ++it) {
- Graph::EdgePath p = theConverters().getPath(*it, dformat);
- if (!p.empty() && (path.empty() || p.size() < path.size())) {
- path = p;
- }
- }
- if (!path.empty())
- result = theConverters().getFlavor(path);
- }
- }
- // cache this flavor
- default_flavors_[dformat] = result;
- return result;
-}
-
-