oox/source/export/shapes.cxx       |    3 +--
 sd/qa/unit/data/odp/tdf151492.odp  |binary
 sd/qa/unit/export-tests-ooxml2.cxx |   16 ++++++++++++++++
 3 files changed, 17 insertions(+), 2 deletions(-)

New commits:
commit 097a2de6428f834d28fa78af203d3c0b6577656e
Author:     Tibor Nagy <nagy.tib...@nisz.hu>
AuthorDate: Sun Oct 16 09:32:33 2022 +0200
Commit:     László Németh <nem...@numbertext.org>
CommitDate: Thu Oct 27 18:17:26 2022 +0200

    tdf#151492 PPTX export: fix connection points regression
    
    caused by commit 4d153517183193f468dee9148c94fe9d874bacb3
    (tdf#149697 PPTX export: fix changing place of connection points).
    
    Change-Id: I6134f18f3c32182a2f5d7295e2511da192dd20c0
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141427
    Tested-by: László Németh <nem...@numbertext.org>
    Reviewed-by: László Németh <nem...@numbertext.org>

diff --git a/oox/source/export/shapes.cxx b/oox/source/export/shapes.cxx
index c7b5699993f4..d102880af7bd 100644
--- a/oox/source/export/shapes.cxx
+++ b/oox/source/export/shapes.cxx
@@ -1643,8 +1643,7 @@ static sal_Int32 lcl_GetGluePointId(const 
Reference<XShape>& xShape, sal_Int32&
     uno::Reference<drawing::XGluePointsSupplier> xSupplier(xShape, 
uno::UNO_QUERY);
     uno::Reference<container::XIdentifierAccess> 
xGluePoints(xSupplier->getGluePoints(),
                                                              uno::UNO_QUERY);
-    sal_uInt32 nCount = xGluePoints->getIdentifiers().size();
-    if (nCount > 4)
+    if (nGluePointId > 3)
         nGluePointId -= 4;
     else
     {
diff --git a/sd/qa/unit/data/odp/tdf151492.odp 
b/sd/qa/unit/data/odp/tdf151492.odp
new file mode 100644
index 000000000000..6928dac5982d
Binary files /dev/null and b/sd/qa/unit/data/odp/tdf151492.odp differ
diff --git a/sd/qa/unit/export-tests-ooxml2.cxx 
b/sd/qa/unit/export-tests-ooxml2.cxx
index 928ecab95997..6b7e934a176f 100644
--- a/sd/qa/unit/export-tests-ooxml2.cxx
+++ b/sd/qa/unit/export-tests-ooxml2.cxx
@@ -70,6 +70,7 @@ static void assertMotionPath(std::u16string_view rStr1, 
std::u16string_view rStr
 class SdOOXMLExportTest2 : public SdModelTestBaseXML
 {
 public:
+    void testTdf151492();
     void testTdf149697();
     void testTdf149126();
     void testTdf131905();
@@ -139,6 +140,7 @@ public:
 
     CPPUNIT_TEST_SUITE(SdOOXMLExportTest2);
 
+    CPPUNIT_TEST(testTdf151492);
     CPPUNIT_TEST(testTdf149697);
     CPPUNIT_TEST(testTdf149126);
     CPPUNIT_TEST(testTdf131905);
@@ -214,6 +216,20 @@ public:
     }
 };
 
+void SdOOXMLExportTest2::testTdf151492()
+{
+    ::sd::DrawDocShellRef xDocShRef
+        = 
loadURL(m_directories.getURLFromSrc(u"/sd/qa/unit/data/odp/tdf151492.odp"), 
ODP);
+    utl::TempFileNamed tempFile;
+    xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+
+    xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, 
"ppt/slides/slide1.xml");
+    assertXPath(pXmlDocContent, 
"/p:sld/p:cSld/p:spTree/p:cxnSp/p:nvCxnSpPr/p:cNvCxnSpPr/a:stCxn",
+                "idx", "0");
+
+    xDocShRef->DoClose();
+}
+
 void SdOOXMLExportTest2::testTdf149697()
 {
     ::sd::DrawDocShellRef xDocShRef

Reply via email to