sw/qa/extras/ooxmlexport/data/zoom.docx |binary sw/qa/extras/ooxmlexport/ooxmlexport.cxx | 9 +++++++++ sw/source/filter/ww8/docxattributeoutput.cxx | 14 +++++++------- 3 files changed, 16 insertions(+), 7 deletions(-)
New commits: commit 150420cbff39967e9376cab05b6af45b642edae8 Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Thu Feb 27 15:51:55 2014 +0100 DOCX export: fix style's next element order Change-Id: I03e91a448794efc2b91f3a6fb6c29dda3403ce9b diff --git a/sw/qa/extras/ooxmlexport/data/zoom.docx b/sw/qa/extras/ooxmlexport/data/zoom.docx index 6c2cd46..a61069f 100644 Binary files a/sw/qa/extras/ooxmlexport/data/zoom.docx and b/sw/qa/extras/ooxmlexport/data/zoom.docx differ diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx index 400745e..b90075d 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx @@ -94,6 +94,15 @@ DECLARE_OOXMLEXPORT_TEST(testZoom, "zoom.docx") sal_Int16 nValue = 0; xPropertySet->getPropertyValue("ZoomValue") >>= nValue; CPPUNIT_ASSERT_EQUAL(sal_Int16(42), nValue); + + // Validation test: order of elements were wrong. + xmlDocPtr pXmlDoc = parseExport("word/styles.xml"); + if (!pXmlDoc) + return; + // Order was: rsid, next. + int nNext = getXPathPosition(pXmlDoc, "/w:styles/w:style[3]", "next"); + int nRsid = getXPathPosition(pXmlDoc, "/w:styles/w:style[3]", "rsid"); + CPPUNIT_ASSERT(nNext < nRsid); } DECLARE_OOXMLEXPORT_TEST(defaultTabStopNotInStyles, "empty.odt") diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx index 09bfa06..4e48125 100644 --- a/sw/source/filter/ww8/docxattributeoutput.cxx +++ b/sw/source/filter/ww8/docxattributeoutput.cxx @@ -3977,6 +3977,13 @@ void DocxAttributeOutput::StartStyle( const OUString& rName, StyleType eType, FSEND ); } + if ( nNext != nId && eType != STYLE_TYPE_LIST) + { + m_pSerializer->singleElementNS( XML_w, XML_next, + FSNS( XML_w, XML_val ), m_rExport.pStyles->GetStyleId(nNext).getStr(), + FSEND ); + } + if (!aLink.isEmpty()) m_pSerializer->singleElementNS(XML_w, XML_link, FSNS(XML_w, XML_val), OUStringToOString(aLink, RTL_TEXTENCODING_UTF8).getStr(), @@ -3999,13 +4006,6 @@ void DocxAttributeOutput::StartStyle( const OUString& rName, StyleType eType, FSNS(XML_w, XML_val), OUStringToOString(aRsid, RTL_TEXTENCODING_UTF8).getStr(), FSEND); - if ( nNext != nId && eType != STYLE_TYPE_LIST) - { - m_pSerializer->singleElementNS( XML_w, XML_next, - FSNS( XML_w, XML_val ), m_rExport.pStyles->GetStyleId(nNext).getStr(), - FSEND ); - } - if ( bAutoUpdate ) m_pSerializer->singleElementNS( XML_w, XML_autoRedefine, FSEND ); } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits