// The clone needs its own DocumentClass, since running updateBuffer() will
// modify it, and we would otherwise be sharing it with the original Buffer.
buffer_clone->params().makeDocumentClass(true);
- ErrorList el;
cap::switchBetweenClasses(
params().documentClassPtr(), buffer_clone->params().documentClassPtr(),
- static_cast<InsetText &>(buffer_clone->inset()), el);
+ static_cast<InsetText &>(buffer_clone->inset()));
bufmap[this] = buffer_clone;
clones->insert(buffer_clone);
// The clone needs its own DocumentClass, since running updateBuffer() will
// modify it, and we would otherwise be sharing it with the original Buffer.
buffer_clone->params().makeDocumentClass(true);
- ErrorList el;
cap::switchBetweenClasses(
params().documentClassPtr(), buffer_clone->params().documentClassPtr(),
- static_cast<InsetText &>(buffer_clone->inset()), el);
+ static_cast<InsetText &>(buffer_clone->inset()));
clones->insert(buffer_clone);
buffer_clone->d->clone_list_ = clones;
params().biblatex_citestyle.erase();
params().multibib.erase();
params().lineno_opts.clear();
+ params().spellignore().clear();
for (int i = 0; i < 4; ++i) {
params().user_defined_bullet(i) = ITEMIZE_DEFAULTS[i];
updateBuffer();
updateMacroInstances(OutputUpdate);
- ExportStatus const retval =
- writeDocBookSource(ofs, runparams, output);
+ ExportStatus const retval = writeDocBookSource(ofs, runparams, output);
if (retval == ExportKilled)
return ExportKilled;
<< "<!-- This DocBook file was created by LyX " << lyx_version
<< "\n See https://www.lyx.org/ for more information -->\n";
+ // Prepare the name space declaration for MathML depending on document preferences.
+ string mathmlNamespace;
+ if (params().docbook_mathml_prefix != BufferParams::NoPrefix) {
+ string mathmlPrefix;
+ if (params().docbook_mathml_prefix == BufferParams::MPrefix)
+ mathmlPrefix = "m";
+ else if (params().docbook_mathml_prefix == BufferParams::MMLPrefix)
+ mathmlPrefix = "mml";
+ mathmlNamespace = + " xmlns:" + mathmlPrefix + "=\"http://www.w3.org/1998/Math/MathML\"";
+ }
+
// Directly output the root tag, based on the current type of document.
string languageCode = params().language->code();
string params = "xml:lang=\"" + languageCode + '"'
+ " xmlns=\"http://docbook.org/ns/docbook\""
+ " xmlns:xlink=\"http://www.w3.org/1999/xlink\""
- + " xmlns:m=\"http://www.w3.org/1998/Math/MathML\""
+ + mathmlNamespace
+ " xmlns:xi=\"http://www.w3.org/2001/XInclude\""
+ " version=\"5.2\"";
} else {
undo().recordUndoBufferParams(CursorData());
branch_list.add(branch_name);
+ branch = branch_list.find(branch_name);
+ if (branch)
+ // needed to update the color table for dark mode
+ branch->setColors("background", "background");
dr.setError(false);
dr.screenUpdate(Update::Force);
}
// loop over children
for (auto const & p : d->children_positions) {
Buffer * child = const_cast<Buffer *>(p.first);
+ // This can happen when called during GUI operations
+ if (!theBufferList().isLoaded(child))
+ continue;
// No duplicates
ListOfBuffers::const_iterator bit = find(children.begin(), children.end(), child);
if (bit != children.end())
// FIXME (Abdel), I don't understand why we pass 'it' here
// instead of 'macroTemplate' defined above... is this correct?
macros[macroTemplate.name()][it] =
- Impl::ScopeMacro(scope, MacroData(const_cast<Buffer *>(owner_), it));
+ Impl::ScopeMacro(scope, MacroData(owner_, it));
}
// next paragraph
void Buffer::setMathFlavor(OutputParams & op) const
{
+ // Passes the way to generate formulae to the XHTML output code.
+ // In particular, this function has no impact on the DocBook code, as it
+ // uses another mechanism to handle math flavours.
switch (params().html_math_output) {
case BufferParams::MathML:
op.math_flavor = OutputParams::MathAsMathML;
Converters converters = theConverters();
bool need_nice_file = false;
if (find(backs.begin(), backs.end(), format) == backs.end()) {
- // Get shortest path to format
+ // Get the shortest path to format
converters.buildGraph();
Graph::EdgePath path;
for (string const & sit : backs) {
result_file = changeExtension(d->exportFileName().absFileName(), ext);
else
result_file = dest_filename;
- // We need to copy referenced files (e. g. included graphics
+ // We need to copy referenced files (e.g. included graphics
// if format == "dvi") to the result dir.
vector<ExportedFile> const extfiles =
runparams.exportdata->externalFiles(format);
"%1$s exists.\n\nRecover emergency save?"), file);
int const load_emerg = Alert::prompt(_("Load emergency save?"), text,
- 0, 2, _("&Recover"), _("&Load Original"), _("&Cancel"));
+ 0, 3, _("&Recover"), _("&Load Original"), _("&Only show difference"), _("&Cancel"));
switch (load_emerg)
{
return ReadOriginal;
}
+ case 2: {
+ string const f1 = d->filename.absFileName();
+ string const f2 = emergencyFile.absFileName();
+ if (loadThisLyXFile(d->filename) != ReadSuccess)
+ return ReadCancel;
+ string const par = "compare run-blocking " + quoteName(f1) + " " + quoteName(f2);
+ LYXERR(Debug::FILES, par << "\n");
+ lyx::dispatch(FuncRequest(LFUN_DIALOG_SHOW, par));
+
+ //release the emergency buffer loaded by compare
+ Buffer * emerBuffer = theBufferList().getBuffer(emergencyFile);
+ if (emerBuffer)
+ theBufferList().release(emerBuffer);
+
+ return ReadCancel; //Release the buffer of Original immediatelly
+ }
default:
break;
}
}
+void Buffer::updateBuffer() const
+{
+ updateBuffer(UpdateMaster, InternalUpdate);
+ d->need_update = false;
+}
+
+
void Buffer::updateBuffer(UpdateScope scope, UpdateType utype) const
{
LBUFERR(!text().paragraphs().empty());