oox/source/ppt/pptshape.cxx | 4 +++- sd/qa/unit/data/pptx/tdf131554.pptx |binary sd/qa/unit/export-tests-ooxml2.cxx | 11 +++++++++++ 3 files changed, 14 insertions(+), 1 deletion(-)
New commits: commit 55d423e8f371e914c51f9aa18aacede46355b133 Author: nd101 <[email protected]> AuthorDate: Wed Mar 25 13:17:48 2020 +0800 Commit: Thorsten Behrens <[email protected]> CommitDate: Thu Apr 2 21:40:50 2020 +0200 tdf#131554 placeholder iteration fails to stop when a match is found Wrong placeholder is returned due to iteration not stopping when a match is found. It causes a text element position to be incorrectly set. Change-Id: I58be6825cec7a61f48b46418bdf28964c1afe4ce Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91023 Reviewed-by: Xisco FaulĂ <[email protected]> Reviewed-by: Michael Stahl <[email protected]> Tested-by: Jenkins Signed-off-by: Xisco Fauli <[email protected]> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91472 Reviewed-by: Thorsten Behrens <[email protected]> diff --git a/oox/source/ppt/pptshape.cxx b/oox/source/ppt/pptshape.cxx index 0088c1e51673..39b0c2eb4abc 100644 --- a/oox/source/ppt/pptshape.cxx +++ b/oox/source/ppt/pptshape.cxx @@ -424,6 +424,8 @@ namespace // 3. ph with nSecondSubType and the same oSubTypeIndex // 4. ph with nSecondSubType // 5. ph with the same oSubTypeIndex +// It appears 3 and 1 has the same highest prority. + oox::drawingml::ShapePtr PPTShape::findPlaceholder( sal_Int32 nFirstSubType, sal_Int32 nSecondSubType, const OptValue< sal_Int32 >& oSubTypeIndex, std::vector< oox::drawingml::ShapePtr >& rShapes, bool bMasterOnly ) { @@ -473,7 +475,7 @@ oox::drawingml::ShapePtr PPTShape::findPlaceholder( sal_Int32 nFirstSubType, sal aChoiceShapePtr3 = aChoiceShapePtr4; } } - if (aShapePtr.get()) + if (aShapePtr.get() || aChoiceShapePtr2.get()) break; ++aRevIter; } diff --git a/sd/qa/unit/data/pptx/tdf131554.pptx b/sd/qa/unit/data/pptx/tdf131554.pptx new file mode 100644 index 000000000000..a65f423add39 Binary files /dev/null and b/sd/qa/unit/data/pptx/tdf131554.pptx differ diff --git a/sd/qa/unit/export-tests-ooxml2.cxx b/sd/qa/unit/export-tests-ooxml2.cxx index 78452a763f01..d0ef2dac0eb7 100644 --- a/sd/qa/unit/export-tests-ooxml2.cxx +++ b/sd/qa/unit/export-tests-ooxml2.cxx @@ -182,6 +182,7 @@ public: void testTdf127372(); void testTdf127379(); void testTdf98603(); + void testTdf131554(); CPPUNIT_TEST_SUITE(SdOOXMLExportTest2); @@ -282,6 +283,7 @@ public: CPPUNIT_TEST(testTdf127372); CPPUNIT_TEST(testTdf127379); CPPUNIT_TEST(testTdf98603); + CPPUNIT_TEST(testTdf131554); CPPUNIT_TEST_SUITE_END(); @@ -2633,6 +2635,15 @@ void SdOOXMLExportTest2::testTdf98603() CPPUNIT_ASSERT_EQUAL(OUString("IL"), aLocale.Country); } +void SdOOXMLExportTest2::testTdf131554() +{ + ::sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("sd/qa/unit/data/pptx/tdf131554.pptx"), PPTX); + xDocShRef = saveAndReload( xDocShRef.get(), PPTX ); + uno::Reference<drawing::XShape> xShape(getShapeFromPage(1, 0, xDocShRef), uno::UNO_QUERY); + CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(5622), xShape->getPosition().X); + CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(13251), xShape->getPosition().Y); +} + CPPUNIT_TEST_SUITE_REGISTRATION(SdOOXMLExportTest2); CPPUNIT_PLUGIN_IMPLEMENT(); _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
