From 83df2047c5861fa5c949e57a05ea040a75428865 Mon Sep 17 00:00:00 2001 From: Richard Heck Date: Mon, 30 Nov 2009 17:20:37 +0000 Subject: [PATCH] Restore XHTML output for InsetFloat. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32246 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/insets/InsetFloat.cpp | 28 +++++++++++++++------------- src/insets/InsetFloat.h | 2 +- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/src/insets/InsetFloat.cpp b/src/insets/InsetFloat.cpp index d014493684..05c60bbc37 100644 --- a/src/insets/InsetFloat.cpp +++ b/src/insets/InsetFloat.cpp @@ -27,6 +27,7 @@ #include "FuncStatus.h" #include "LaTeXFeatures.h" #include "Lexer.h" +#include "output_xhtml.h" #include "ParIterator.h" #include "TextClass.h" @@ -281,31 +282,32 @@ void InsetFloat::validate(LaTeXFeatures & features) const } -docstring InsetFloat::xhtml(odocstream & os, OutputParams const & rp) const +docstring InsetFloat::xhtml(XHTMLStream & xs, OutputParams const & rp) const { FloatList const & floats = buffer().params().documentClass().floats(); Floating const & ftype = floats.getType(params_.type); string const & htmltype = ftype.htmlTag(); - string const & htmlclass = ftype.htmlClass(); - docstring const otag = - from_ascii("<" + htmltype + " class='float " + htmlclass + "'>\n"); - docstring const ctag = from_ascii("\n"); + string const attr = "class='float " + ftype.htmlClass() + "'"; - odocstringstream out; - - out << otag; - docstring def = InsetText::xhtml(out, rp); - out << ctag; + odocstringstream ods; + XHTMLStream newxs(ods); + newxs << StartTag(htmltype, attr); + InsetText::XHTMLOptions const opts = + InsetText::WriteLabel | InsetText::WriteInnerTag; + docstring deferred = InsetText::insetAsXHTML(newxs, rp, opts); + newxs << EndTag(htmltype); if (rp.inFloat == OutputParams::NONFLOAT) // In this case, this float needs to be deferred, but we'll put it // before anything the text itself deferred. - def = out.str() + '\n' + def; + deferred = ods.str() + '\n' + deferred; else // In this case, the whole thing is already being deferred, so // we can write to the stream. - os << out.str(); - return def; + // Note that things will already have been escaped, so we do not + // want to escape them again. + xs << XHTMLStream::NextRaw() << ods.str(); + return deferred; } diff --git a/src/insets/InsetFloat.h b/src/insets/InsetFloat.h index 614cebba08..0cbf71cf18 100644 --- a/src/insets/InsetFloat.h +++ b/src/insets/InsetFloat.h @@ -89,7 +89,7 @@ private: /// int docbook(odocstream &, OutputParams const &) const; /// - docstring xhtml(odocstream &, OutputParams const &) const; + docstring xhtml(XHTMLStream &, OutputParams const &) const; /// bool insetAllowed(InsetCode) const; /** returns true if, when outputing LaTeX, font changes should -- 2.39.2