X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInsetFloat.cpp;h=0b6ed66fd99e24b3c2a02ffa540e53fb70128ee7;hb=e30db1e44474ee379bedb0d1c752297541156497;hp=a1bddb0a22f0ac0d228a60466f7f48a5f0b580fb;hpb=6d425078a796531d3abb6a9a858fecdfa85af6be;p=lyx.git diff --git a/src/insets/InsetFloat.cpp b/src/insets/InsetFloat.cpp index a1bddb0a22..0b6ed66fd9 100644 --- a/src/insets/InsetFloat.cpp +++ b/src/insets/InsetFloat.cpp @@ -119,7 +119,7 @@ InsetFloat::InsetFloat(Buffer * buf, string params_str) } -docstring InsetFloat::name() const +docstring InsetFloat::layoutName() const { return "Float:" + from_utf8(params_.type); } @@ -189,6 +189,12 @@ bool InsetFloat::getStatus(Cursor & cur, FuncRequest const & cmd, return true; } else return false; + + case LFUN_NEWLINE_INSERT: + if (params_.subfloat) { + flag.setEnabled(false); + return true; + } default: return InsetCollapsable::getStatus(cur, cmd, flag); @@ -331,17 +337,20 @@ void InsetFloat::latex(otexstream & os, OutputParams const & runparams_in) const if (runparams_in.moving_arg) os << "\\protect"; os << "\\subfloat"; - + OutputParams rp = runparams_in; + rp.moving_arg = true; docstring const caption = getCaption(rp); if (!caption.empty()) { os << caption; } os << '{'; + // The main argument is the contents of the float. This is not a moving argument. + rp.moving_arg = false; rp.inFloat = OutputParams::SUBFLOAT; InsetText::latex(os, rp); os << "}"; - + return; } OutputParams runparams(runparams_in); @@ -389,11 +398,11 @@ void InsetFloat::latex(otexstream & os, OutputParams const & runparams_in) const } -int InsetFloat::plaintext(odocstream & os, OutputParams const & runparams) const +int InsetFloat::plaintext(odocstringstream & os, OutputParams const & runparams, size_t max_length) const { os << '[' << buffer().B_("float") << ' ' << floatName(params_.type) << ":\n"; - InsetText::plaintext(os, runparams); + InsetText::plaintext(os, runparams, max_length); os << "\n]"; return PLAINTEXT_NEWLINE + 1; // one char on a separate line @@ -470,6 +479,12 @@ void InsetFloat::setNewLabel() } +bool InsetFloat::allowsCaptionVariation(std::string const & newtype) const +{ + return !params_.subfloat && newtype != "LongTableNoNumber"; +} + + docstring InsetFloat::getCaption(OutputParams const & runparams) const { if (paragraphs().empty()) @@ -482,7 +497,7 @@ docstring InsetFloat::getCaption(OutputParams const & runparams) const TexRow texrow; odocstringstream ods; otexstream os(ods, texrow); - ins->getOptArg(os, runparams); + ins->getArgs(os, runparams); ods << '['; odocstringstream odss; otexstream oss(odss, texrow);