mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-25 19:07:45 +00:00
Allow LyX format to be shown in View>Source.
Cherry-picked from b7ac2d69e7
.
This commit is contained in:
parent
1e8f537481
commit
4eab9d49a4
@ -3215,14 +3215,14 @@ void Buffer::getSourceCode(odocstream & os, string const format,
|
||||
convert<docstring>(par_end - 1))
|
||||
<< "\n\n";
|
||||
}
|
||||
TexRow texrow;
|
||||
texrow.reset();
|
||||
texrow.newline();
|
||||
texrow.newline();
|
||||
// output paragraphs
|
||||
if (params().isDocBook())
|
||||
docbookParagraphs(text(), *this, os, runparams);
|
||||
else if (runparams.flavor == OutputParams::HTML) {
|
||||
if (runparams.flavor == OutputParams::LYX) {
|
||||
Paragraph const & par = text().paragraphs()[par_begin];
|
||||
ostringstream ods;
|
||||
depth_type dt = par.getDepth();
|
||||
par.write(ods, params(), dt);
|
||||
os << from_utf8(ods.str());
|
||||
} else if (runparams.flavor == OutputParams::HTML) {
|
||||
XHTMLStream xs(os);
|
||||
setMathFlavor(runparams);
|
||||
xhtmlParagraphs(text(), *this, xs, runparams);
|
||||
@ -3232,6 +3232,8 @@ void Buffer::getSourceCode(odocstream & os, string const format,
|
||||
// Probably should have some routine with a signature like them.
|
||||
writePlaintextParagraph(*this,
|
||||
text().paragraphs()[par_begin], os, runparams, dummy);
|
||||
} else if (params().isDocBook()) {
|
||||
docbookParagraphs(text(), *this, os, runparams);
|
||||
} else {
|
||||
// We need to validate the Buffer params' features here
|
||||
// in order to know if we should output polyglossia
|
||||
@ -3239,28 +3241,46 @@ void Buffer::getSourceCode(odocstream & os, string const format,
|
||||
LaTeXFeatures features(*this, params(), runparams);
|
||||
params().validate(features);
|
||||
runparams.use_polyglossia = features.usePolyglossia();
|
||||
TexRow texrow;
|
||||
texrow.reset();
|
||||
texrow.newline();
|
||||
texrow.newline();
|
||||
// latex or literate
|
||||
otexstream ots(os, texrow);
|
||||
latexParagraphs(*this, text(), ots, runparams);
|
||||
}
|
||||
} else {
|
||||
os << "% ";
|
||||
if (output == FullSource)
|
||||
if (output == FullSource)
|
||||
os << _("Preview source code");
|
||||
else if (output == OnlyPreamble)
|
||||
os << _("Preview preamble");
|
||||
else if (output == OnlyBody)
|
||||
os << _("Preview body");
|
||||
os << "\n\n";
|
||||
d->texrow.reset();
|
||||
d->texrow.newline();
|
||||
d->texrow.newline();
|
||||
if (params().isDocBook())
|
||||
writeDocBookSource(os, absFileName(), runparams, output);
|
||||
else if (runparams.flavor == OutputParams::HTML)
|
||||
if (runparams.flavor == OutputParams::LYX) {
|
||||
ostringstream ods;
|
||||
if (output == FullSource)
|
||||
write(ods);
|
||||
else if (output == OnlyPreamble)
|
||||
params().writeFile(ods);
|
||||
else if (output == OnlyBody)
|
||||
text().write(ods);
|
||||
os << from_utf8(ods.str());
|
||||
} else if (runparams.flavor == OutputParams::HTML) {
|
||||
writeLyXHTMLSource(os, runparams, output);
|
||||
else {
|
||||
} else if (runparams.flavor == OutputParams::TEXT) {
|
||||
if (output == OnlyPreamble) {
|
||||
os << _("% Plaintext does not have a preamble.");
|
||||
} else
|
||||
writePlaintextFile(*this, os, runparams);
|
||||
} else if (params().isDocBook()) {
|
||||
writeDocBookSource(os, absFileName(), runparams, output);
|
||||
} else {
|
||||
// latex or literate
|
||||
d->texrow.reset();
|
||||
d->texrow.newline();
|
||||
d->texrow.newline();
|
||||
otexstream ots(os, d->texrow);
|
||||
writeLaTeXSource(ots, string(), runparams, output);
|
||||
}
|
||||
|
@ -2181,6 +2181,8 @@ OutputParams::FLAVOR BufferParams::getOutputFlavor(string const format) const
|
||||
result = OutputParams::LUATEX;
|
||||
else if (dformat == "dviluatex")
|
||||
result = OutputParams::DVILUATEX;
|
||||
else if (dformat == "lyx")
|
||||
result = OutputParams::LYX;
|
||||
else {
|
||||
// Try to determine flavor of default output format
|
||||
vector<string> backs = backends();
|
||||
|
@ -35,7 +35,8 @@ public:
|
||||
XETEX,
|
||||
XML,
|
||||
HTML,
|
||||
TEXT
|
||||
TEXT,
|
||||
LYX
|
||||
};
|
||||
|
||||
enum MathFlavor {
|
||||
|
@ -203,11 +203,10 @@ void ViewSourceWidget::updateDefaultFormat()
|
||||
for (; it != en; ++it) {
|
||||
string const format = *it;
|
||||
Format const * fmt = formats.getFormat(format);
|
||||
if (!fmt)
|
||||
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);
|
||||
|
@ -746,6 +746,9 @@ void InsetExternal::validate(LaTeXFeatures & features) const
|
||||
case OutputParams::TEXT:
|
||||
format = "text";
|
||||
break;
|
||||
case OutputParams::LYX:
|
||||
format = "lyx";
|
||||
break;
|
||||
}
|
||||
external::Template::Formats::const_iterator cit =
|
||||
et.formats.find(format);
|
||||
|
@ -43,6 +43,8 @@ What's new
|
||||
|
||||
- Show backends, not formats, in View>Source (bug #7652).
|
||||
|
||||
- Allow native LyX format to be shown in View>Source.
|
||||
|
||||
|
||||
* DOCUMENTATION AND LOCALIZATION
|
||||
|
||||
@ -90,6 +92,8 @@ What's new
|
||||
|
||||
- Fix enumitem module translation (bug #8201).
|
||||
|
||||
- Set math display format when showing XHTML in View>Source.
|
||||
|
||||
|
||||
* DOCUMENTATION AND LOCALIZATION
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user