writerperfect/source/writer/exp/txtparai.cxx | 36 ++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-)
New commits: commit 185e197724c1e2cdb07ebb94be617c856d45d96f Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Tue Aug 15 08:45:33 2017 +0200 EPUB export: initial span support Characters under <text:span> (and not only under <text:p>) are now handled. Change-Id: Iac353005423d65f446b9f93519957f4caeaf1c7a Reviewed-on: https://gerrit.libreoffice.org/41164 Reviewed-by: Miklos Vajna <vmik...@collabora.co.uk> Tested-by: Jenkins <c...@libreoffice.org> diff --git a/writerperfect/source/writer/exp/txtparai.cxx b/writerperfect/source/writer/exp/txtparai.cxx index 9507ceb759b9..8abf113dad52 100644 --- a/writerperfect/source/writer/exp/txtparai.cxx +++ b/writerperfect/source/writer/exp/txtparai.cxx @@ -18,13 +18,47 @@ namespace writerperfect namespace exp { +/// Handler for <text:span>. +class XMLSpanContext : public XMLImportContext +{ +public: + XMLSpanContext(XMLImport &rImport); + + void SAL_CALL startElement(const OUString &rName, const css::uno::Reference<css::xml::sax::XAttributeList> &xAttribs) override; + void SAL_CALL endElement(const OUString &rName) override; + void SAL_CALL characters(const OUString &rChars) override; +}; + +XMLSpanContext::XMLSpanContext(XMLImport &rImport) + : XMLImportContext(rImport) +{ +} + +void XMLSpanContext::startElement(const OUString &/*rName*/, const css::uno::Reference<css::xml::sax::XAttributeList> &/*xAttribs*/) +{ + mrImport.GetGenerator().openSpan(librevenge::RVNGPropertyList()); +} + +void XMLSpanContext::endElement(const OUString &/*rName*/) +{ + mrImport.GetGenerator().closeSpan(); +} + +void XMLSpanContext::characters(const OUString &rChars) +{ + OString sCharU8 = OUStringToOString(rChars, RTL_TEXTENCODING_UTF8); + mrImport.GetGenerator().insertText(librevenge::RVNGString(sCharU8.getStr())); +} + XMLParaContext::XMLParaContext(XMLImport &rImport) : XMLImportContext(rImport) { } -XMLImportContext *XMLParaContext::CreateChildContext(const OUString &/*rName*/, const css::uno::Reference<css::xml::sax::XAttributeList> &/*xAttribs*/) +XMLImportContext *XMLParaContext::CreateChildContext(const OUString &rName, const css::uno::Reference<css::xml::sax::XAttributeList> &/*xAttribs*/) { + if (rName == "text:span") + return new XMLSpanContext(mrImport); return nullptr; } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits