X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInsetCaption.cpp;h=ee0c3e0d1d24587325b226c43e2953456fff76ec;hb=245c2b3c45dce1f5f385665e932ee19c9a904081;hp=2303a1d82a530eb52620cb0879c0ad9f0187c79f;hpb=cc7c042ddacc456b1b86f0d9ab4cda7e51571303;p=lyx.git diff --git a/src/insets/InsetCaption.cpp b/src/insets/InsetCaption.cpp index 2303a1d82a..ee0c3e0d1d 100644 --- a/src/insets/InsetCaption.cpp +++ b/src/insets/InsetCaption.cpp @@ -62,11 +62,9 @@ InsetCaption::InsetCaption(Buffer * buf, string const & type) void InsetCaption::write(ostream & os) const { os << "Caption"; - if (!type_.empty()) { - os << " " - << type_; - } - os << "\n"; + if (!type_.empty()) + os << ' ' << type_; + os << '\n'; text().write(os); } @@ -104,7 +102,7 @@ void InsetCaption::addToToc(DocIterator const & cpit, bool output_active) const Toc & toc = buffer().tocBackend().toc(floattype_); docstring str = full_label_; int length = output_active ? INT_MAX : TOC_ENTRY_LENGTH; - text().forToc(str, length); + text().forOutliner(str, length); toc.push_back(TocItem(pit, 0, str, output_active)); // Proceed with the rest of the inset. @@ -199,9 +197,7 @@ void InsetCaption::doDispatch(Cursor & cur, FuncRequest & cmd) switch (cmd.action()) { case LFUN_INSET_MODIFY: { - string const first_arg = cmd.getArg(0); - bool const change_type = first_arg == "changetype"; - if (change_type) { + if (cmd.getArg(0) == "changetype") { cur.recordUndoInset(ATOMIC_UNDO, this); type_ = cmd.getArg(1); cur.forceBufferUpdate(); @@ -229,8 +225,7 @@ bool InsetCaption::getStatus(Cursor & cur, FuncRequest const & cmd, bool varia = type != "LongTableNoNumber"; // check if the immediate parent inset allows caption variation if (cur.depth() > 1) { - if (&cur[cur.depth() - 2].inset()) - varia = cur[cur.depth() - 2].inset().allowsCaptionVariation(type); + varia = cur[cur.depth() - 2].inset().allowsCaptionVariation(type); } status.setEnabled(varia && buffer().params().documentClass().hasInsetLayout( @@ -240,10 +235,6 @@ bool InsetCaption::getStatus(Cursor & cur, FuncRequest const & cmd, return InsetText::getStatus(cur, cmd, status); } - case LFUN_PARAGRAPH_BREAK: - status.setEnabled(false); - return true; - case LFUN_INSET_TOGGLE: // pass back to owner cur.undispatched(); @@ -267,9 +258,6 @@ void InsetCaption::latex(otexstream & os, // \caption{...}, later we will make it take advantage // of the one of the caption packages. (Lgb) OutputParams runparams = runparams_in; - // FIXME: actually, it is moving only when there is no - // optional argument. - runparams.moving_arg = !runparams.inTableCell; InsetText::latex(os, runparams); // Backwards compatibility: We always had a linebreak after // the caption (see #8514) @@ -305,7 +293,7 @@ docstring InsetCaption::xhtml(XHTMLStream & xs, OutputParams const & rp) const if (rp.html_disable_captions) return docstring(); InsetLayout const & il = getLayout(); - string const tag = il.htmltag(); + string const & tag = il.htmltag(); string attr = il.htmlattr(); if (!type_.empty()) { string const our_class = "float-caption-" + type_; @@ -329,7 +317,7 @@ void InsetCaption::getArgument(otexstream & os, if (!il.leftdelim().empty()) os << il.leftdelim(); - + OutputParams rp = runparams; if (isPassThru()) rp.pass_thru = true; @@ -362,7 +350,7 @@ docstring InsetCaption::getCaptionAsHTML(XHTMLStream & xs, OutputParams const & runparams) const { xs << full_label_ << ' '; - InsetText::XHTMLOptions const opts = + InsetText::XHTMLOptions const opts = InsetText::WriteLabel | InsetText::WriteInnerTag; return InsetText::insetAsXHTML(xs, runparams, opts); } @@ -404,7 +392,9 @@ void InsetCaption::updateBuffer(ParIterator const & it, UpdateType utype) docstring const labelstring = isAscii(lstring) ? master.B_(to_ascii(lstring)) : lstring; if (cnts.hasCounter(counter)) { - cnts.step(counter, utype); + // for longtables, we step the counter upstream + if (!cnts.isLongtable()) + cnts.step(counter, utype); sec = cnts.theCounter(counter, lang); } if (labelstring != master.B_("standard")) {