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\"";
// 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);
}
case 2: {
- string f1 = d->filename.absFileName();
- string f2 = emergencyFile.absFileName();
+ string const f1 = d->filename.absFileName();
+ string const f2 = emergencyFile.absFileName();
if (loadThisLyXFile(d->filename) != ReadSuccess)
return ReadCancel;
- string par = "compare run-blocking " + quoteName(f1) + " " + quoteName(f2);
+ 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);
+ if (emerBuffer)
+ theBufferList().release(emerBuffer);
return ReadCancel; //Release the buffer of Original immediatelly
}
}
+void Buffer::updateBuffer() const
+{
+ updateBuffer(UpdateMaster, InternalUpdate);
+ d->need_update = false;
+}
+
+
void Buffer::updateBuffer(UpdateScope scope, UpdateType utype) const
{
LBUFERR(!text().paragraphs().empty());
switch(layout.labeltype) {
case LABEL_ITEMIZE: {
- // At some point of time we should do something more
- // clever here, like:
- // par.params().labelString(
- // bp.user_defined_bullet(par.itemdepth).getText());
- // for now, use a simple hardcoded label
- docstring itemlabel;
- switch (par.itemdepth) {
- case 0:
- // • U+2022 BULLET
- itemlabel = char_type(0x2022);
- break;
- case 1:
- // – U+2013 EN DASH
- itemlabel = char_type(0x2013);
- break;
- case 2:
- // ∗ U+2217 ASTERISK OPERATOR
- itemlabel = char_type(0x2217);
- break;
- case 3:
- // · U+00B7 MIDDLE DOT
- itemlabel = char_type(0x00b7);
- break;
- }
- par.params().labelString(itemlabel);
+ par.params().labelString(
+ bp.user_defined_bullet(par.itemdepth).getUnicode());
break;
}
}
+void Buffer::requestSpellcheck()
+{
+ ParagraphList::iterator pit = paragraphs().begin();
+ ParagraphList::iterator pend = paragraphs().end();
+ for (; pit != pend; ++pit)
+ pit->requestSpellCheck();
+}
+
+
void Buffer::Impl::updateStatistics(DocIterator & from, DocIterator & to, bool skipNoOutput)
{
bool inword = false;