hasCaption = !osCaptionContent.str().empty();
}
- // Organisation: <float> <title if any/> <contents without title/> </float>.
+ // Organisation: <float with xml:id if any> <title if any/> <contents without title nor xml:id/> </float>.
+ // Titles and xml:id are generated with specific insets and must be dealt with using OutputParams.
// - Generate the attributes for the float tag.
docstring attr = docstring();
}
// - Output the actual content of the float or some dummy content (to ensure that the output
- // document is valid).
+ // document is valid). Use HTML tables by default, unless an InsetFloat is given.
if (hasFloat)
xs << XMLStream::ESCAPE_NONE << osFloatContent.str();
- else if (ftype.docbookFloatType() == "table")
- docbookGenerateFillerTable(xs, thisFloat->buffer().params().docbook_table_output);
- else
+ else if (ftype.docbookFloatType() == "table") {
+ BufferParams::TableOutput tableFormat = BufferParams::HTMLTable;
+ if (thisFloat)
+ tableFormat = thisFloat->buffer().params().docbook_table_output;
+ docbookGenerateFillerTable(xs, tableFormat);
+ } else
docbookGenerateFillerMedia(xs);
// - Close the float.
}
+void InsetFloat::updateBuffer(ParIterator const & it, UpdateType utype, bool const deleted)
+{
+ InsetCaptionable::updateBuffer(it, utype, deleted);
+ bool const subflt = (it.innerInsetOfType(FLOAT_CODE)
+ || it.innerInsetOfType(WRAP_CODE));
+ setSubfloat(subflt);
+}
+
+
void InsetFloat::setWide(bool w, bool update_label)
{
if (!buffer().params().documentClass().floats().allowsWide(params_.type))
params_.wide = false;
else
- params_.wide = w;
+ params_.wide = w;
if (update_label)
setNewLabel();
}