[Libreoffice-commits] core.git: Branch 'libreoffice-6-4' - oox/source sd/qa

nd101 (via logerrit) logerrit at kemper.freedesktop.org
Thu Apr 2 19:41:24 UTC 2020


 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 <Fong at nd.com.cn>
AuthorDate: Wed Mar 25 13:17:48 2020 +0800
Commit:     Thorsten Behrens <Thorsten.Behrens at CIB.de>
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í <xiscofauli at libreoffice.org>
    Reviewed-by: Michael Stahl <michael.stahl at cib.de>
    Tested-by: Jenkins
    Signed-off-by: Xisco Fauli <xiscofauli at libreoffice.org>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91472
    Reviewed-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>

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();


More information about the Libreoffice-commits mailing list