diff options
author | Michael Stahl <mstahl@redhat.com> | 2015-12-08 19:55:20 +0100 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2015-12-08 22:11:43 +0100 |
commit | 3b63d2b9371baa5f526d0fcd41043ec76abb0d50 (patch) | |
tree | d02468d87291a7906309cfd34b106298c5990f5f | |
parent | 742c2370566bf1e7caa7403c99f088a79ae146fa (diff) |
sw: un-break DOCX formula export
(regression from 1dac99e7ea45f90bf39eb95eb7bc01f7d79093ef)
Change-Id: Iffe3ec6c28f62b78a2b223144bfaad383d272802
-rw-r--r-- | sw/qa/extras/ooxmlexport/ooxmlexport3.cxx | 3 | ||||
-rw-r--r-- | sw/source/filter/ww8/docxattributeoutput.cxx | 5 |
2 files changed, 8 insertions, 0 deletions
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport3.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport3.cxx index de717736c22d..759ccf1327e6 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport3.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport3.cxx @@ -984,6 +984,9 @@ DECLARE_OOXMLEXPORT_TEST(testFileOpenInputOutputError,"floatingtbl_with_formula. if (!pXmlDoc) return; assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:pPr/w:pStyle", "val", "Normal"); + + // let's also assert that the formula was exported properly + assertXPathContent(pXmlDoc, "//wps:txbx/w:txbxContent/w:tbl/w:tr/w:tc[2]/w:p/m:oMath/m:sSubSup/m:e/m:r/m:t", OUString::fromUtf8("\xcf\x83")); } #endif diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx index 02c21e6f4751..d9b45e8939f5 100644 --- a/sw/source/filter/ww8/docxattributeoutput.cxx +++ b/sw/source/filter/ww8/docxattributeoutput.cxx @@ -127,6 +127,7 @@ #include <com/sun/star/drawing/ShadingPattern.hpp> #include <com/sun/star/text/GraphicCrop.hpp> #include <com/sun/star/drawing/LineStyle.hpp> +#include <com/sun/star/embed/EmbedStates.hpp> #include <algorithm> @@ -4521,6 +4522,10 @@ bool DocxAttributeOutput::WriteOLEMath( const SdrObject*, const SwOLENode& rOLEN void DocxAttributeOutput::WritePostponedMath(const SwOLENode* pPostponedMath) { uno::Reference < embed::XEmbeddedObject > xObj(const_cast<SwOLENode*>(pPostponedMath)->GetOLEObj().GetOleRef()); + if (embed::EmbedStates::LOADED == xObj->getCurrentState()) + { // must be running so there is a Component + xObj->changeState(embed::EmbedStates::RUNNING); + } uno::Reference< uno::XInterface > xInterface( xObj->getComponent(), uno::UNO_QUERY ); if (!xInterface.is()) { |