X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInsetVSpace.cpp;h=d4e1aaf4a8f8d9773e3f0953593c6bfdd2c30e8d;hb=d4550b7a4d64e9ff772cf3a7635cb4ca532fb340;hp=927980dcf301ce8e9f7f9a69444d68e26ca36e4f;hpb=ecef54500d4d77baf4fa47eac2253679875ac08c;p=lyx.git diff --git a/src/insets/InsetVSpace.cpp b/src/insets/InsetVSpace.cpp index 927980dcf3..d4e1aaf4a8 100644 --- a/src/insets/InsetVSpace.cpp +++ b/src/insets/InsetVSpace.cpp @@ -24,6 +24,7 @@ #include "MetricsInfo.h" #include "OutputParams.h" #include "output_xhtml.h" +#include "texstream.h" #include "Text.h" #include "support/debug.h" @@ -59,7 +60,12 @@ void InsetVSpace::doDispatch(Cursor & cur, FuncRequest & cmd) case LFUN_INSET_MODIFY: { cur.recordUndo(); - InsetVSpace::string2params(to_utf8(cmd.argument()), space_); + string arg = to_utf8(cmd.argument()); + if (arg == "vspace custom") + arg = (space_.kind() == VSpace::LENGTH) + ? "vspace " + space_.length().asString() + : "vspace 1" + string(stringFromUnit(Length::defaultUnit())); + InsetVSpace::string2params(arg, space_); break; } @@ -78,7 +84,12 @@ bool InsetVSpace::getStatus(Cursor & cur, FuncRequest const & cmd, case LFUN_INSET_MODIFY: if (cmd.getArg(0) == "vspace") { VSpace vspace; - InsetVSpace::string2params(to_utf8(cmd.argument()), vspace); + string arg = to_utf8(cmd.argument()); + if (arg == "vspace custom") + arg = (space_.kind() == VSpace::LENGTH) + ? "vspace " + space_.length().asString() + : "vspace 1" + string(stringFromUnit(Length::defaultUnit())); + InsetVSpace::string2params(arg, vspace); status.setOnOff(vspace == space_); } status.setEnabled(true); @@ -92,7 +103,7 @@ bool InsetVSpace::getStatus(Cursor & cur, FuncRequest const & cmd, void InsetVSpace::read(Lexer & lex) { - LASSERT(lex.isOK(), /**/); + LASSERT(lex.isOK(), return); string vsp; lex >> vsp; if (lex) @@ -139,8 +150,6 @@ void InsetVSpace::metrics(MetricsInfo & mi, Dimension & dim) const dim.asc = height / 2 + (a - d) / 2; // align cursor with the dim.des = height - dim.asc; // label text dim.wid = ADD_TO_VSPACE_WIDTH + 2 * vspace_arrow_size + 5 + w; - // Cache the inset dimension. - setDimCache(mi, dim); } @@ -222,14 +231,12 @@ int InsetVSpace::docbook(odocstream & os, OutputParams const &) const } -docstring InsetVSpace::xhtml(XHTMLStream &, OutputParams const &) const +docstring InsetVSpace::xhtml(XHTMLStream & os, OutputParams const &) const { - odocstringstream ods; - XHTMLStream xds(ods); string const len = space_.asHTMLLength(); string const attr = "style='height:" + (len.empty() ? "1em" : len) + "'"; - xds << html::StartTag("div", attr, true) << html::EndTag("div"); - return ods.str(); + os << html::StartTag("div", attr, true) << html::EndTag("div"); + return docstring(); }