diff options
Diffstat (limited to 'starmath/source/ooxmlimport.cxx')
-rw-r--r-- | starmath/source/ooxmlimport.cxx | 27 |
1 files changed, 27 insertions, 0 deletions
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: */ |