View>Source combo.
What's new in LyX 2.0.5
=======================
+The View>Source widget now allows you to select the backend to display,
+e.g., LaTeX or XHTML, rather than the output format. The previous choice
+really made no sense: You didn't see a PDF there if you chose one of the
+PDF output formats, but rather LaTeX. This solves some long-standing issues
+with View>Source.
+
What's new
==========
else if (runparams.flavor == OutputParams::HTML) {
XHTMLStream xs(os);
xhtmlParagraphs(text(), *this, xs, runparams);
+ } else if (runparams.flavor == OutputParams::TEXT) {
+ bool dummy;
+ // FIXME Handles only one paragraph, unlike the others.
+ // Probably should have some routine with a signature like them.
+ writePlaintextParagraph(*this,
+ text().paragraphs()[par_begin], os, runparams, dummy);
} else {
// latex or literate
otexstream ots(os, texrow);
vector<string> BufferParams::backends() const
{
vector<string> v;
- v.push_back(bufferFormat());
+ string const buffmt = bufferFormat();
+
// FIXME: Don't hardcode format names here, but use a flag
- if (v.back() == "latex") {
- v.push_back("pdflatex");
+ if (buffmt == "latex") {
+ if (!useNonTeXFonts) {
+ v.push_back("pdflatex");
+ v.push_back("latex");
+ }
v.push_back("luatex");
v.push_back("dviluatex");
v.push_back("xetex");
- } else if (v.back() == "xetex") {
+ } else if (buffmt == "xetex") {
+ v.push_back("xetex");
v.push_back("luatex");
v.push_back("dviluatex");
- }
+ } else
+ v.push_back(buffmt);
+
v.push_back("xhtml");
v.push_back("text");
v.push_back("lyx");
if (dformat == "xhtml")
result = OutputParams::HTML;
+ else if (dformat == "text")
+ result = OutputParams::TEXT;
else {
// Try to determine flavor of default output format
vector<string> backs = backends();
std::vector<Format const *> exportableFormats(bool only_viewable) const;
///
bool isExportableFormat(std::string const & format) const;
- ///
+ /// the backends appropriate for use with this document.
+ /// so, e.g., latex is excluded , if we're using non-TeX fonts
std::vector<std::string> backends() const;
/// List of included children (for includeonly)
outputFormatCO->addItem(qt_("Default"),
QVariant(QString("default")));
- int index = 0;
- typedef vector<Format const *> Formats;
- Formats formats = bv_->buffer().params().exportableFormats(true);
- Formats::const_iterator cit = formats.begin();
- Formats::const_iterator end = formats.end();
- for (; cit != end; ++cit) {
- QString const fname = toqstr((*cit)->name());
- outputFormatCO->addItem(qt_((*cit)->prettyname()),
- QVariant(fname));
- if (fname == view_format_)
- index = outputFormatCO->count() -1;
+ vector<string> tmp = bv_->buffer().params().backends();
+ vector<string>::const_iterator it = tmp.begin();
+ vector<string>::const_iterator en = tmp.end();
+ for (; it != en; ++it) {
+ string const format = *it;
+ Format const * fmt = formats.getFormat(format);
+ if (!fmt)
+ LYXERR0("Can't find format for backend " << format << "!");
+ else if (fmt->name() == "lyx")
+ // we can't presently display the LyX format itself
+ continue;
+
+ QString const pretty =
+ fmt ? qt_(fmt->prettyname()) : toqstr(format);
+ outputFormatCO->addItem(pretty, QVariant(toqstr(format)));
}
- outputFormatCO->setCurrentIndex(index);
+
outputFormatCO->blockSignals(false);
}
* USER INTERFACE
+- Show backends, not formats, in View>Source (bug #7652).
* DOCUMENTATION AND LOCALIZATION