sw/qa/extras/ooxmlexport/data/table-start-2-sdt.docx |binary sw/qa/extras/ooxmlexport/ooxmlfieldexport.cxx | 9 +++++++++ writerfilter/source/dmapper/DomainMapper.cxx | 6 ++++++ 3 files changed, 15 insertions(+)
New commits: commit ddb24728b2971f6ed64a0372acb166251f1d9c8f Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Thu Jul 31 15:45:31 2014 +0200 DOCX import: merging properties of different SDT's are not wanted When the document starts with a table and both the A1 cell as well as the document start has an SDT start, then we see both at the same time when we check for pending SDT's in lcl_utext(). This leads to merging the properties of the two SDT's, which is clearly not wanted. Fix the problem by clearning the SDT property list when we see a start of a new property list: that produces a valid document. Change-Id: I8fbe7bec02beebb26ed99fa7b08bc62225bff50c diff --git a/sw/qa/extras/ooxmlexport/data/table-start-2-sdt.docx b/sw/qa/extras/ooxmlexport/data/table-start-2-sdt.docx new file mode 100644 index 0000000..d3bf3bc Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/table-start-2-sdt.docx differ diff --git a/sw/qa/extras/ooxmlexport/ooxmlfieldexport.cxx b/sw/qa/extras/ooxmlexport/ooxmlfieldexport.cxx index 1e0b98d..73fab54 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlfieldexport.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlfieldexport.cxx @@ -541,6 +541,15 @@ DECLARE_OOXMLEXPORT_TEST(test2Id, "2-id.docx") } } +DECLARE_OOXMLEXPORT_TEST(testTableStart2Sdt, "table-start-2-sdt.docx") +{ + if (xmlDocPtr pXmlDoc = parseExport()) + { + // w:docPartGallery should be a child of <w:docPartObj>, make sure it's not a child of w:text. + assertXPath(pXmlDoc, "//w:sdt/w:sdtPr/w:text/w:docPartGallery", 0); + } +} + #endif CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx index 37af96b..c9973c2 100644 --- a/writerfilter/source/dmapper/DomainMapper.cxx +++ b/writerfilter/source/dmapper/DomainMapper.cxx @@ -2451,6 +2451,12 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, PropertyMapPtr rContext ) } } break; + case NS_ooxml::LN_CT_SdtPr_rPr: + { + // Make sure properties from a pervious SDT are not merged with the current ones. + m_pImpl->m_pSdtHelper->getInteropGrabBagAndClear(); + } + break; default: { #ifdef DEBUG_DOMAINMAPPER _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits