sw/qa/extras/ooxmlexport/ooxmlexport18.cxx | 6 ++++-- writerfilter/source/dmapper/DomainMapper_Impl.cxx | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-)
New commits: commit 5120cc702741ee3bdded80336f33362e42bf4276 Author: Justin Luth <justin.l...@collabora.com> AuthorDate: Wed Jan 17 22:02:48 2024 -0500 Commit: Miklos Vajna <vmik...@collabora.com> CommitDate: Mon Jan 22 14:22:11 2024 +0100 tdf#159158 DOCX import: shape's last duplicate z-index wins It looks like for DOCX a duplicate always comes out on top, which is the exact opposite of what we have been doing so far. The ability to switch between "old" and "new" style was added for RTF's benefit, and cautiously expanded to include when RTF and DOCX IMPORT_AS_DETECTED_INLINE. This does not affect RTF, since AFAIK RTF cannot contain VML-Z-ORDER properties. Change-Id: I110e3db3fa504f1ae3a5bba5979b40f0c00a467e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162261 Tested-by: Jenkins Reviewed-by: Justin Luth <jl...@mail.com> Reviewed-by: Miklos Vajna <vmik...@collabora.com> diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport18.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport18.cxx index 5699ecbe7953..084863c144f4 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport18.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport18.cxx @@ -973,8 +973,10 @@ DECLARE_OOXMLEXPORT_TEST(testTdf159158_zOrder_zIndexDuplicate_compat15, "tdf1591 CPPUNIT_ASSERT_EQUAL(sal_Int32(0), getProperty<sal_Int32>(zOrder0, "ZOrder")); // lower CPPUNIT_ASSERT_EQUAL(sal_Int32(1), getProperty<sal_Int32>(zOrder1, "ZOrder")); // higher // should be the same as relativeHeight - last duplicate wins so blue is on top. - // CPPUNIT_ASSERT_EQUAL(OUString("5-Point Star Yellow"), getProperty<OUString>(zOrder0, "Name")); - // CPPUNIT_ASSERT_EQUAL(OUString("5-Point Star Blue"), getProperty<OUString>(zOrder1,"Name")); + if (!isExported()) //somehow the name is lost on this export + CPPUNIT_ASSERT_EQUAL(OUString("5-Point Star Yellow"), getProperty<OUString>(zOrder0, "Name")); + if (!isExported()) //somehow the name is lost on this export + CPPUNIT_ASSERT_EQUAL(OUString("5-Point Star Blue"), getProperty<OUString>(zOrder1,"Name")); } DECLARE_OOXMLEXPORT_TEST(testTdf159158_zOrder_zIndexWins, "tdf159158_zOrder_zIndexWins.docx") diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx index 86065066403e..e92b5c9e76d6 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx @@ -4732,7 +4732,8 @@ void DomainMapper_Impl::PushShapeContext( const uno::Reference< drawing::XShape GraphicZOrderHelper* pZOrderHelper = m_rDMapper.graphicZOrderHelper(); sal_Int32 zOrder(0); rProp.Value >>= zOrder; - xShapePropertySet->setPropertyValue( "ZOrder", uno::Any(pZOrderHelper->findZOrder(zOrder))); + xShapePropertySet->setPropertyValue("ZOrder", + uno::Any(pZOrderHelper->findZOrder(zOrder, /*LastDuplicateWins*/true))); pZOrderHelper->addItem(xShapePropertySet, zOrder); xShapePropertySet->setPropertyValue(getPropertyName( PROP_OPAQUE ), uno::Any( zOrder >= 0 ) ); checkZOrderStatus = true; @@ -4776,7 +4777,8 @@ void DomainMapper_Impl::PushShapeContext( const uno::Reference< drawing::XShape GraphicZOrderHelper* pZOrderHelper = m_rDMapper.graphicZOrderHelper(); sal_Int32 zOrder(0); rProp.Value >>= zOrder; - xShapePropertySet->setPropertyValue( "ZOrder", uno::Any(pZOrderHelper->findZOrder(zOrder))); + xShapePropertySet->setPropertyValue("ZOrder", + uno::Any(pZOrderHelper->findZOrder(zOrder, /*LastDuplicateWins*/true))); pZOrderHelper->addItem(xShapePropertySet, zOrder); xShapePropertySet->setPropertyValue(getPropertyName( PROP_OPAQUE ), uno::Any( zOrder >= 0 ) ); checkZOrderStatus = true;