X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInsetNewline.cpp;h=ecfacf47cef19f8e8546454980fea97055021f85;hb=8124e6c02ea1fd6779bb6c47ffe2bca2c8bd2d97;hp=411da120eb60120df773d8f9771209d2d57d0c1e;hpb=670efa8f646218f2a378f0cc614c4c37a9f6b89a;p=lyx.git diff --git a/src/insets/InsetNewline.cpp b/src/insets/InsetNewline.cpp index 411da120eb..ecfacf47ce 100644 --- a/src/insets/InsetNewline.cpp +++ b/src/insets/InsetNewline.cpp @@ -19,7 +19,7 @@ #include "FuncStatus.h" #include "Lexer.h" #include "MetricsInfo.h" -#include "OutputParams.h" +#include "output_docbook.h" #include "output_xhtml.h" #include "texstream.h" @@ -35,10 +35,19 @@ using namespace std; namespace lyx { -InsetNewline::InsetNewline() : Inset(0) +InsetNewline::InsetNewline() : Inset(nullptr) {} +int InsetNewline::rowFlags() const +{ + if (params_.kind == InsetNewlineParams::LINEBREAK) + return AlwaysBreakAfter; + else + return AlwaysBreakAfter | Flush; +} + + void InsetNewlineParams::write(ostream & os) const { switch (kind) { @@ -56,7 +65,7 @@ void InsetNewlineParams::read(Lexer & lex) { string token; lex.setContext("InsetNewlineParams::read"); - lex >> token; + lex >> token; if (token == "newline") kind = InsetNewlineParams::NEWLINE; else if (token == "linebreak") @@ -146,7 +155,9 @@ void InsetNewline::latex(otexstream & os, OutputParams const & rp) const { switch (params_.kind) { case InsetNewlineParams::NEWLINE: - if (rp.inTableCell == OutputParams::PLAIN) + if (!rp.newlinecmd.empty()) + os << "\\" << rp.newlinecmd << "\n"; + else if (rp.inTableCell == OutputParams::PLAIN) os << "\\newline\n"; else os << "\\\\\n"; @@ -169,16 +180,15 @@ int InsetNewline::plaintext(odocstringstream & os, } -int InsetNewline::docbook(odocstream & os, OutputParams const &) const +void InsetNewline::docbook(XMLStream &, OutputParams const &) const { - os << '\n'; - return 0; + // New lines are handled by Paragraph::simpleDocBookOnePar. } -docstring InsetNewline::xhtml(XHTMLStream & xs, OutputParams const &) const +docstring InsetNewline::xhtml(XMLStream & xs, OutputParams const &) const { - xs << html::CR() << html::CompTag("br") << html::CR(); + xs << xml::CR() << xml::CompTag("br") << xml::CR(); return docstring(); } @@ -245,7 +255,7 @@ void InsetNewline::draw(PainterInfo & pi, int x, int y) const yp[0] = int(y - 0.875 * asc * 0.75); yp[1] = int(y - 0.500 * asc * 0.75); yp[2] = int(y - 0.125 * asc * 0.75); - + if (pi.ltr_pos) { xp[0] = int(x + 2 * wid * 0.813); xp[1] = int(x + 2 * wid);