summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuboš Luňák <l.lunak@suse.cz>2011-11-24 16:10:30 +0100
committerLuboš Luňák <l.lunak@suse.cz>2011-11-24 18:43:59 +0100
commit26032e5874587966a23984ade459be323440e683 (patch)
tree6c440444f2b905a0247ab52a4c7d5e55f8504bdd
parent3236f5bea9b995922a59b43818f8f92cccde9956 (diff)
at least partial implementation of reading mathml docx m:e
-rw-r--r--starmath/source/ooxmlimport.cxx32
-rw-r--r--starmath/source/ooxmlimport.hxx2
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;
};