diff options
author | Luboš Luňák <l.lunak@suse.cz> | 2011-11-24 16:10:30 +0100 |
---|---|---|
committer | Luboš Luňák <l.lunak@suse.cz> | 2011-11-24 18:43:59 +0100 |
commit | 26032e5874587966a23984ade459be323440e683 (patch) | |
tree | 6c440444f2b905a0247ab52a4c7d5e55f8504bdd /starmath | |
parent | 3236f5bea9b995922a59b43818f8f92cccde9956 (diff) |
at least partial implementation of reading mathml docx m:e
Diffstat (limited to 'starmath')
-rw-r--r-- | starmath/source/ooxmlimport.cxx | 32 | ||||
-rw-r--r-- | starmath/source/ooxmlimport.hxx | 2 |
2 files changed, 29 insertions, 5 deletions
diff --git a/starmath/source/ooxmlimport.cxx b/starmath/source/ooxmlimport.cxx index 0880ac36ca60..c0a52deca0e0 100644 --- a/starmath/source/ooxmlimport.cxx +++ b/starmath/source/ooxmlimport.cxx @@ -162,7 +162,31 @@ OUString SmOoxmlImport::handleAcc() OUString SmOoxmlImport::handleE() { -// TODO + OUString ret; + stream.ensureOpeningTag( M_TOKEN( e )); + while( !stream.atEnd()) + { // TODO can there really be more or just one sub-elements? + XmlStream::Tag tag = stream.currentTag(); + if( tag.token == CLOSING( M_TOKEN( e ))) + break; + switch( tag.token ) + { + case OPENING( M_TOKEN( acc )): + ret += STR( " " ) + handleAcc(); + break; + case OPENING( M_TOKEN( f )): + ret += STR( " " ) + handleF(); + break; + case OPENING( M_TOKEN( r )): + ret += STR( " " ) + handleR(); + break; + default: + stream.handleUnexpectedTag(); + break; + } + } + stream.ensureClosingTag( M_TOKEN( e )); + return ret; } // NOT complete @@ -174,17 +198,17 @@ OUString SmOoxmlImport::handleF() // TODO } stream.ensureOpeningTag( M_TOKEN( num )); - OUString num = readR(); + OUString num = handleR(); stream.ensureClosingTag( M_TOKEN( num )); stream.ensureOpeningTag( M_TOKEN( den )); - OUString den = readR(); + OUString den = handleR(); stream.ensureClosingTag( M_TOKEN( den )); stream.ensureClosingTag( M_TOKEN( f )); return STR( "{" ) + num + STR( "} over {" ) + den + STR( "}" ); } // NOT complete -OUString SmOoxmlImport::readR() +OUString SmOoxmlImport::handleR() { stream.ensureOpeningTag( M_TOKEN( r )); if( XmlStream::Tag rPr = stream.checkOpeningTag( OOX_TOKEN( doc, rPr ))) diff --git a/starmath/source/ooxmlimport.hxx b/starmath/source/ooxmlimport.hxx index c3787757a705..5cf3bf52c14f 100644 --- a/starmath/source/ooxmlimport.hxx +++ b/starmath/source/ooxmlimport.hxx @@ -47,7 +47,7 @@ private: rtl::OUString handleAcc(); rtl::OUString handleE(); rtl::OUString handleF(); - rtl::OUString readR(); + rtl::OUString handleR(); oox::formulaimport::XmlStream& stream; }; |