From 9414d02629e3267e47ac4d93a318b13ef2efc39e Mon Sep 17 00:00:00 2001 From: Luboš Luňák Date: Wed, 30 Nov 2011 12:01:02 +0100 Subject: implement docx m:rad --- starmath/source/ooxmlimport.cxx | 27 +++++++++++++++++++++++++++ starmath/source/ooxmlimport.hxx | 1 + 2 files changed, 28 insertions(+) (limited to 'starmath') diff --git a/starmath/source/ooxmlimport.cxx b/starmath/source/ooxmlimport.cxx index 3f884e5123fe..6b4e7e20dae5 100644 --- a/starmath/source/ooxmlimport.cxx +++ b/starmath/source/ooxmlimport.cxx @@ -131,6 +131,9 @@ OUString SmOoxmlImport::readOMathArg() case OPENING( M_TOKEN( r )): ret += handleR(); break; + case OPENING( M_TOKEN( rad )): + ret += handleRad(); + break; default: stream.handleUnexpectedTag(); break; @@ -538,4 +541,28 @@ OUString SmOoxmlImport::handleR() return text; } +OUString SmOoxmlImport::handleRad() +{ + stream.ensureOpeningTag( M_TOKEN( rad )); + bool degHide = false; + if( stream.checkOpeningTag( M_TOKEN( radPr ))) + { + if( XmlStream::Tag degHideTag = stream.checkOpeningTag( M_TOKEN( degHide ))) + { + degHide = degHideTag.attribute( M_TOKEN( val ), degHide ); + stream.ensureClosingTag( M_TOKEN( degHide )); + } + stream.ensureClosingTag( M_TOKEN( radPr )); + } + stream.ensureOpeningTag( M_TOKEN( deg )); + OUString deg = readOMathArg(); + stream.ensureClosingTag( M_TOKEN( deg )); + OUString e = handleE(); + stream.ensureClosingTag( M_TOKEN( rad )); + if( degHide ) + return STR( "sqrt {" ) + e + STR( "}" ); + else + return STR( "nroot {" ) + deg + STR( "}{" ) + e + STR( "}" ); +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/starmath/source/ooxmlimport.hxx b/starmath/source/ooxmlimport.hxx index 350ff3f1efd2..fe88dfa52417 100644 --- a/starmath/source/ooxmlimport.hxx +++ b/starmath/source/ooxmlimport.hxx @@ -57,6 +57,7 @@ private: rtl::OUString handleM(); rtl::OUString handleNary(); rtl::OUString handleR(); + rtl::OUString handleRad(); rtl::OUString readOMathArg(); oox::formulaimport::XmlStream& stream; }; -- cgit