summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--starmath/source/ooxmlimport.cxx27
-rw-r--r--starmath/source/ooxmlimport.hxx1
2 files changed, 28 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: */
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;
};