X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInsetCaption.cpp;h=7570fa52fa1ec1cc6bf12e95cd947db6e078c7d8;hb=3391fed36a574fb729f243888258d1b6d45b0251;hp=93abfe47ee8ee2cb9b25a411bb0948b4bdb8e732;hpb=d5a5fbb8ee87d4a8ae1c55f9ba72819251bb6fb7;p=features.git diff --git a/src/insets/InsetCaption.cpp b/src/insets/InsetCaption.cpp index 93abfe47ee..7570fa52fa 100644 --- a/src/insets/InsetCaption.cpp +++ b/src/insets/InsetCaption.cpp @@ -32,6 +32,8 @@ #include "OutputParams.h" #include "Paragraph.h" #include "ParIterator.h" +#include "TexRow.h" +#include "texstream.h" #include "TextClass.h" #include "TextMetrics.h" #include "TocBackend.h" @@ -51,7 +53,8 @@ namespace lyx { InsetCaption::InsetCaption(Buffer * buf, string const & type) - : InsetText(buf, InsetText::PlainLayout), type_(type) + : InsetText(buf, InsetText::PlainLayout), + labelwidth_(0), is_subfloat_(false), type_(type) { setDrawFrame(true); setFrameColor(Color_collapsableframe); @@ -91,7 +94,7 @@ void InsetCaption::setCustomLabel(docstring const & label) void InsetCaption::addToToc(DocIterator const & cpit, bool output_active, - UpdateType utype) const + UpdateType utype, TocBackend & backend) const { string const & type = floattype_.empty() ? "senseless" : floattype_; DocIterator pit = cpit; @@ -106,9 +109,9 @@ void InsetCaption::addToToc(DocIterator const & cpit, bool output_active, str = full_label_; text().forOutliner(str, length); } - buffer().tocBackend().builder(type)->captionItem(pit, str, output_active); + backend.builder(type).captionItem(pit, str, output_active); // Proceed with the rest of the inset. - InsetText::addToToc(cpit, output_active, utype); + InsetText::addToToc(cpit, output_active, utype, backend); } @@ -224,7 +227,7 @@ bool InsetCaption::getStatus(Cursor & cur, FuncRequest const & cmd, if (first_arg == "changetype") { string const type = cmd.getArg(1); status.setOnOff(type == type_); - bool varia = type != "LongTableNoNumber"; + bool varia = type != "Unnumbered"; // check if the immediate parent inset allows caption variation if (cur.depth() > 1) { varia = cur[cur.depth() - 2].inset().allowsCaptionVariation(type); @@ -301,7 +304,7 @@ docstring InsetCaption::xhtml(XHTMLStream & xs, OutputParams const & rp) const string const our_class = "float-caption-" + type_; size_t const loc = attr.find("class='"); if (loc != string::npos) - attr.insert(loc + 7, our_class+ " "); + attr.insert(loc + 7, our_class + " "); else attr = attr + " class='" + our_class + "'"; } @@ -329,6 +332,8 @@ void InsetCaption::getArgument(otexstream & os, rp.par_end = paragraphs().size(); // Output the contents of the inset + if (!paragraphs().empty()) + os.texrow().forceStart(paragraphs()[0].id(), 0); latexParagraphs(buffer(), text(), os, rp); runparams.encoding = rp.encoding;