include/oox/drawingml/connectorshapecontext.hxx     |   15 
 include/oox/drawingml/shape.hxx                     |   11 
 include/oox/ppt/slidepersist.hxx                    |    4 
 oox/inc/drawingml/customshapeproperties.hxx         |    1 
 oox/source/drawingml/chart/chartdrawingfragment.cxx |    3 
 oox/source/drawingml/connectorshapecontext.cxx      |   84 ++++-
 oox/source/drawingml/customshapeproperties.cxx      |   36 --
 oox/source/drawingml/shape.cxx                      |   37 ++
 oox/source/drawingml/shapegroupcontext.cxx          |    3 
 oox/source/drawingml/shapepropertiescontext.cxx     |    8 
 oox/source/export/shapes.cxx                        |    3 
 oox/source/ppt/pptshapegroupcontext.cxx             |    6 
 oox/source/ppt/slidepersist.cxx                     |   70 ++++
 oox/source/shape/LockedCanvasContext.cxx            |    7 
 sc/source/filter/oox/drawingfragment.cxx            |    3 
 sd/qa/unit/data/pptx/tdf89449.pptx                  |binary
 sd/qa/unit/data/xml/fdo47434_0.xml                  |  188 ------------
 sd/qa/unit/data/xml/tdf100491_0.xml                 |  304 +-------------------
 sd/qa/unit/export-tests-ooxml2.cxx                  |    8 
 sd/qa/unit/import-tests.cxx                         |   39 ++
 20 files changed, 288 insertions(+), 542 deletions(-)

New commits:
commit cbf66ec3e60d07efb7c3cceed9b4f0fb4f0510c8
Author:     Tibor Nagy <nagy.tib...@nisz.hu>
AuthorDate: Thu Mar 10 08:42:12 2022 +0100
Commit:     László Németh <nem...@numbertext.org>
CommitDate: Tue Mar 29 16:12:45 2022 +0200

    tdf#89449 PPTX import: fix line connectors
    
    Line connectors were imported as plain shapes, losing
    their functionality during editing, i.e. keeping
    connections of boxes and other shapes.
    
    Change-Id: I0f1562be2dbcce0e45eb209c6ca4e035731039e1
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131303
    Tested-by: László Németh <nem...@numbertext.org>
    Reviewed-by: László Németh <nem...@numbertext.org>

diff --git a/include/oox/drawingml/connectorshapecontext.hxx 
b/include/oox/drawingml/connectorshapecontext.hxx
index 1efdd2e40611..c9819ae85137 100644
--- a/include/oox/drawingml/connectorshapecontext.hxx
+++ b/include/oox/drawingml/connectorshapecontext.hxx
@@ -25,16 +25,29 @@
 #include <oox/drawingml/drawingmltypes.hxx>
 #include <oox/drawingml/shapecontext.hxx>
 #include <sal/types.h>
+#include <vector>
 
 namespace oox { class AttributeList; }
 namespace oox::core { class ContextHandler2Helper; }
 
 namespace oox::drawingml {
 
+    struct ConnectorShapeProperties
+    {
+        bool mbStartShape;
+        OUString maDestShapeId;
+        sal_Int32 mnDestGlueId;
+    };
+
 class OOX_DLLPUBLIC ConnectorShapeContext final : public ShapeContext
 {
+    std::vector<ConnectorShapeProperties>& mrConnectorShapePropertiesList;
+    ShapePtr mpConnectorShapePtr;
+
 public:
-    ConnectorShapeContext( ::oox::core::ContextHandler2Helper const & rParent, 
const ShapePtr& pMasterShapePtr, const ShapePtr& pGroupShapePtr );
+    ConnectorShapeContext(::oox::core::ContextHandler2Helper const& rParent,
+                          const ShapePtr& pMasterShapePtr, const ShapePtr& 
pGroupShapePtr,
+                          std::vector<ConnectorShapeProperties>& 
rConnectorShapePropertiesList);
     virtual ~ConnectorShapeContext() override;
     virtual ::oox::core::ContextHandlerRef onCreateContext( ::sal_Int32 
Element, const ::oox::AttributeList& rAttribs ) override;
 };
diff --git a/include/oox/drawingml/shape.hxx b/include/oox/drawingml/shape.hxx
index 734e805ccac5..a16e65a71ef1 100644
--- a/include/oox/drawingml/shape.hxx
+++ b/include/oox/drawingml/shape.hxx
@@ -34,6 +34,7 @@
 #include <oox/core/xmlfilterbase.hxx>
 #include <oox/dllapi.h>
 #include <oox/drawingml/color.hxx>
+#include <oox/drawingml/connectorshapecontext.hxx>
 #include <oox/drawingml/drawingmltypes.hxx>
 #include <oox/helper/helper.hxx>
 #include <oox/helper/propertymap.hxx>
@@ -73,6 +74,8 @@ typedef std::shared_ptr< CustomShapeProperties > 
CustomShapePropertiesPtr;
 
 typedef ::std::map< OUString, ShapePtr > ShapeIdMap;
 
+typedef std::vector<ConnectorShapeProperties> ConnectorShapePropertiesList;
+
 struct ShapeStyleRef
 {
     Color               maPhClr;
@@ -128,6 +131,10 @@ public:
 
     CustomShapePropertiesPtr&       getCustomShapeProperties(){ return 
mpCustomShapePropertiesPtr; }
 
+    ConnectorShapePropertiesList&   getConnectorShapeProperties() { return 
maConnectorShapePropertiesList; }
+    void                            setConnectorShape(bool bConnector) { 
mbConnector = bConnector; }
+    bool                            isConnectorShape() const { return 
mbConnector; }
+
     Shape3DProperties&              get3DProperties() { return 
*mp3DPropertiesPtr; }
     const Shape3DProperties&        get3DProperties() const { return 
*mp3DPropertiesPtr; }
 
@@ -332,6 +339,7 @@ protected:
     PropertyMap                 maDefaultShapeProperties;
     TextListStylePtr            mpMasterTextListStyle;
     css::uno::Reference< css::drawing::XShape > mxShape;
+    ConnectorShapePropertiesList maConnectorShapePropertiesList;
 
     OUString                    msServiceName;
     OUString                    msName;
@@ -394,6 +402,9 @@ private:
     /// The shape fill should be set to that of the slide background surface.
     bool mbUseBgFill = false;
 
+    // Is this a connector shape?
+    bool mbConnector = false;
+
     // temporary space for DiagramHelper in preparation for collecting data
     // Note: I tried to use a unique_ptr here, but existing constructor func 
does not allow that
     IDiagramHelper* mpDiagramHelper;
diff --git a/include/oox/ppt/slidepersist.hxx b/include/oox/ppt/slidepersist.hxx
index c09e5f0b0da0..1b0a92c70783 100644
--- a/include/oox/ppt/slidepersist.hxx
+++ b/include/oox/ppt/slidepersist.hxx
@@ -125,6 +125,8 @@ public:
     CommentList& getCommentsList() { return maCommentsList; }
     CommentAuthorList& getCommentAuthors() { return maCommentAuthors; }
 
+    void createConnectorShapeConnection();
+
 private:
     OUString                                                                
maPath;
     OUString                                                                
maLayoutPath;
@@ -156,6 +158,8 @@ private:
     // slide comments
     CommentList                                                             
maCommentsList;
     CommentAuthorList                                                       
maCommentAuthors;
+
+    std::vector<OUString>                                                   
maConnectorShapeId;
 };
 
 }
diff --git a/oox/inc/drawingml/customshapeproperties.hxx 
b/oox/inc/drawingml/customshapeproperties.hxx
index 779003412fbb..ea9b9e9d53af 100644
--- a/oox/inc/drawingml/customshapeproperties.hxx
+++ b/oox/inc/drawingml/customshapeproperties.hxx
@@ -98,7 +98,6 @@ public:
     CustomShapeProperties();
 
     void pushToPropSet( const css::uno::Reference < css::beans::XPropertySet > 
& xPropSet,
-                        const css::uno::Reference < css::drawing::XShape > & 
xShape,
                         const css::awt::Size &aSize );
 
     sal_Int32 getShapePresetType() const { return mnShapePresetType; }
diff --git a/oox/source/drawingml/chart/chartdrawingfragment.cxx 
b/oox/source/drawingml/chart/chartdrawingfragment.cxx
index c41e2db49821..9509ad4ea01e 100644
--- a/oox/source/drawingml/chart/chartdrawingfragment.cxx
+++ b/oox/source/drawingml/chart/chartdrawingfragment.cxx
@@ -157,7 +157,8 @@ ContextHandlerRef ChartDrawingFragment::onCreateContext( 
sal_Int32 nElement, con
                     return new ShapeContext( *this, ShapePtr(), mxShape );
                 case CDR_TOKEN( cxnSp ):
                     mxShape = std::make_shared<Shape>( 
"com.sun.star.drawing.ConnectorShape" );
-                    return new ConnectorShapeContext( *this, ShapePtr(), 
mxShape );
+                    return new ConnectorShapeContext(*this, ShapePtr(), 
mxShape,
+                                                     
mxShape->getConnectorShapeProperties());
                 case CDR_TOKEN( pic ):
                     mxShape = std::make_shared<Shape>( 
"com.sun.star.drawing.GraphicObjectShape" );
                     return new GraphicShapeContext( *this, ShapePtr(), mxShape 
);
diff --git a/oox/source/drawingml/connectorshapecontext.cxx 
b/oox/source/drawingml/connectorshapecontext.cxx
index e815d56994d9..b1ea90c357af 100644
--- a/oox/source/drawingml/connectorshapecontext.cxx
+++ b/oox/source/drawingml/connectorshapecontext.cxx
@@ -22,6 +22,7 @@
 
 #include <oox/drawingml/connectorshapecontext.hxx>
 #include <oox/drawingml/drawingmltypes.hxx>
+#include <oox/drawingml/shape.hxx>
 #include <oox/helper/attributelist.hxx>
 #include <oox/token/namespaces.hxx>
 #include <oox/token/tokens.hxx>
@@ -35,30 +36,93 @@ using namespace ::com::sun::star::xml::sax;
 
 namespace oox::drawingml {
 
-ConnectorShapeContext::ConnectorShapeContext( ContextHandler2Helper const & 
rParent,
-        const ShapePtr& pMasterShapePtr, const ShapePtr& pGroupShapePtr )
-: ShapeContext( rParent, pMasterShapePtr, pGroupShapePtr )
+namespace
 {
+class ConnectorShapePropertiesContext : public ::oox::core::ContextHandler2
+{
+    std::vector<ConnectorShapeProperties>& mrConnectorShapePropertiesList;
+    ShapePtr mpConnectorShapePtr;
+
+public:
+    ConnectorShapePropertiesContext(
+        ::oox::core::ContextHandler2Helper const& rParent, ShapePtr& pShapePtr,
+        std::vector<ConnectorShapeProperties>& rConnectorShapePropertiesList);
+
+    virtual ::oox::core::ContextHandlerRef onCreateContext(sal_Int32 
aElementToken,
+                                                           const 
AttributeList& rAttribs) override;
+};
 }
 
-ConnectorShapeContext::~ConnectorShapeContext()
+ConnectorShapePropertiesContext::ConnectorShapePropertiesContext(
+    ContextHandler2Helper const& rParent, ShapePtr& pShapePtr,
+    std::vector<ConnectorShapeProperties>& rConnectorShapePropertiesList)
+    : ContextHandler2(rParent)
+    , mrConnectorShapePropertiesList(rConnectorShapePropertiesList)
+    , mpConnectorShapePtr(pShapePtr)
 {
+    mpConnectorShapePtr->setConnectorShape(true);
 }
 
-ContextHandlerRef ConnectorShapeContext::onCreateContext( sal_Int32 
aElementToken, const AttributeList& rAttribs )
+::oox::core::ContextHandlerRef
+ConnectorShapePropertiesContext::onCreateContext(sal_Int32 aElementToken,
+                                                const AttributeList& rAttribs)
 {
-    switch( getBaseToken( aElementToken ) )
+    switch (getBaseToken(aElementToken))
     {
-        case XML_nvCxnSpPr :
-        break;
-
+        case XML_cNvPr:
+            mpConnectorShapePtr->setId(rAttribs.getString(XML_id).get());
+            mpConnectorShapePtr->setName(rAttribs.getString(XML_name).get());
+            break;
+        case XML_stCxn:
+        {
+            ConnectorShapeProperties aConnectorShapeProps;
+            aConnectorShapeProps.mbStartShape = true;
+            aConnectorShapeProps.maDestShapeId = 
rAttribs.getString(XML_id).get();
+            aConnectorShapeProps.mnDestGlueId = 
rAttribs.getInteger(XML_idx).get();
+            mrConnectorShapePropertiesList.push_back(aConnectorShapeProps);
+            break;
+        }
+        case XML_endCxn:
+        {
+            ConnectorShapeProperties aConnectorShapeProps;
+            aConnectorShapeProps.mbStartShape = false;
+            aConnectorShapeProps.maDestShapeId = 
rAttribs.getString(XML_id).get();
+            aConnectorShapeProps.mnDestGlueId = 
rAttribs.getInteger(XML_idx).get();
+            mrConnectorShapePropertiesList.push_back(aConnectorShapeProps);
+            break;
+        }
         default:
-            return ShapeContext::onCreateContext( aElementToken, rAttribs );
+            break;
     }
 
     return this;
 }
 
+ConnectorShapeContext::ConnectorShapeContext(
+    ContextHandler2Helper const& rParent, const ShapePtr& pMasterShapePtr,
+    const ShapePtr& pGroupShapePtr,
+    std::vector<ConnectorShapeProperties>& rConnectorShapePropertiesList)
+    : ShapeContext(rParent, pMasterShapePtr, pGroupShapePtr)
+    , mrConnectorShapePropertiesList(rConnectorShapePropertiesList)
+    , mpConnectorShapePtr(pGroupShapePtr)
+{
+}
+
+ConnectorShapeContext::~ConnectorShapeContext() {}
+
+ContextHandlerRef ConnectorShapeContext::onCreateContext(sal_Int32 
aElementToken,
+                                                         const AttributeList& 
rAttribs)
+{
+    switch (getBaseToken(aElementToken))
+    {
+        case XML_nvCxnSpPr:
+            return new ConnectorShapePropertiesContext(*this, 
mpConnectorShapePtr,
+                                                      
mrConnectorShapePropertiesList);
+    }
+
+    return ShapeContext::onCreateContext(aElementToken, rAttribs);
+}
+
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/oox/source/drawingml/customshapeproperties.cxx 
b/oox/source/drawingml/customshapeproperties.cxx
index efe7c0ad03af..b748deb48702 100644
--- a/oox/source/drawingml/customshapeproperties.cxx
+++ b/oox/source/drawingml/customshapeproperties.cxx
@@ -97,25 +97,8 @@ bool CustomShapeProperties::representsDefaultShape() const
 
 CustomShapeProperties::PresetDataMap CustomShapeProperties::maPresetDataMap;
 
-static OUString GetConnectorShapeType( sal_Int32 nType )
-{
-    SAL_INFO(
-        "oox.drawingml", "preset: " << nType << " " << XML_straightConnector1);
-
-    OUString sType;
-    switch( nType )
-    {
-        case XML_straightConnector1:
-            sType = "mso-spt32";
-            break;
-        default:
-            break;
-    }
-    return sType;
-}
-
 void CustomShapeProperties::pushToPropSet(
-    const Reference < XPropertySet >& xPropSet, const Reference < XShape > & 
xShape, const awt::Size &aSize )
+    const Reference < XPropertySet >& xPropSet, const awt::Size &aSize )
 {
     if ( mnShapePresetType >= 0 )
     {
@@ -127,22 +110,7 @@ void CustomShapeProperties::pushToPropSet(
         PropertyMap aPropertyMap;
         PropertySet aPropSet( xPropSet );
 
-        OUString sConnectorShapeType = GetConnectorShapeType( 
mnShapePresetType );
-
-        if (sConnectorShapeType.getLength() > 0)
-        {
-            SAL_INFO(
-                "oox.drawingml",
-                "connector shape: " << sConnectorShapeType << " ("
-                    << mnShapePresetType << ")");
-            //const uno::Reference < drawing::XShape > xShape( xPropSet, 
UNO_QUERY );
-            Reference< drawing::XEnhancedCustomShapeDefaulter > xDefaulter( 
xShape, UNO_QUERY );
-            if( xDefaulter.is() ) {
-                xDefaulter->createCustomShapeDefaults( sConnectorShapeType );
-                aPropertyMap.setProperty( PROP_Type, sConnectorShapeType );
-            }
-        }
-        else if (maPresetDataMap.find(mnShapePresetType) != 
maPresetDataMap.end())
+        if (maPresetDataMap.find(mnShapePresetType) != maPresetDataMap.end())
         {
             SAL_INFO(
                 "oox.drawingml",
diff --git a/oox/source/drawingml/shape.cxx b/oox/source/drawingml/shape.cxx
index cc988699292e..2ef801c5ee08 100644
--- a/oox/source/drawingml/shape.cxx
+++ b/oox/source/drawingml/shape.cxx
@@ -78,6 +78,7 @@
 #include <com/sun/star/drawing/EnhancedCustomShapeAdjustmentValue.hpp>
 #include <com/sun/star/drawing/XEnhancedCustomShapeDefaulter.hpp>
 #include <com/sun/star/drawing/EnhancedCustomShapeTextPathMode.hpp>
+#include <com/sun/star/drawing/ConnectorType.hpp>
 #include <com/sun/star/embed/XEmbeddedObject.hpp>
 #include <com/sun/star/text/XText.hpp>
 #include <com/sun/star/table/BorderLine2.hpp>
@@ -867,10 +868,8 @@ Reference< XShape > const & Shape::createAndInsert(
     bool bIsCroppedGraphic = (aServiceName == 
"com.sun.star.drawing.GraphicObjectShape" &&
                               
!mpCustomShapePropertiesPtr->representsDefaultShape());
 
-    // ToDo: Why is ConnectorShape here treated as custom shape, but below 
with start and end point?
-    bool bIsCustomShape = ( aServiceName == "com.sun.star.drawing.CustomShape" 
||
-                            aServiceName == 
"com.sun.star.drawing.ConnectorShape" ||
-                            bIsCroppedGraphic);
+    bool bIsCustomShape = (aServiceName == "com.sun.star.drawing.CustomShape" 
|| bIsCroppedGraphic);
+    bool bIsConnectorShape = (aServiceName == 
"com.sun.star.drawing.ConnectorShape");
     if(bIsCroppedGraphic)
     {
         aServiceName = "com.sun.star.drawing.CustomShape";
@@ -1653,6 +1652,34 @@ Reference< XShape > const & Shape::createAndInsert(
         if (mbWps && aServiceName == "com.sun.star.drawing.LineShape" && 
!pParentGroupShape)
             mxShape->setPosition(maPosition);
 
+        if (bIsConnectorShape)
+        {
+            ConnectorType aConnectorType;
+            sal_Int32 nType = mpCustomShapePropertiesPtr->getShapePresetType();
+            switch (nType)
+            {
+            case XML_line:
+            case XML_straightConnector1:
+                aConnectorType = ConnectorType_LINE;
+                break;
+            case XML_bentConnector2:
+            case XML_bentConnector3:
+            case XML_bentConnector4:
+            case XML_bentConnector5:
+                aConnectorType = ConnectorType_STANDARD;
+                break;
+            case XML_curvedConnector2:
+            case XML_curvedConnector3:
+            case XML_curvedConnector4:
+            case XML_curvedConnector5:
+                aConnectorType = ConnectorType_CURVE;
+                break;
+            default:
+                break;
+            }
+            xSet->setPropertyValue("EdgeKind", Any(aConnectorType));
+        }
+
         if( bIsCustomShape )
         {
             if ( mbFlipH )
@@ -1701,7 +1728,7 @@ Reference< XShape > const & Shape::createAndInsert(
             // for these ==cscode== and ==csdata== markers, so don't "clean 
up" these SAL_INFOs
             SAL_INFO("oox.cscode", "==cscode== shape name: '" << msName << 
"'");
             SAL_INFO("oox.csdata", "==csdata== shape name: '" << msName << 
"'");
-            mpCustomShapePropertiesPtr->pushToPropSet( xSet, mxShape, maSize );
+            mpCustomShapePropertiesPtr->pushToPropSet(xSet, maSize);
 
             if (mpTextBody)
             {
diff --git a/oox/source/drawingml/shapegroupcontext.cxx 
b/oox/source/drawingml/shapegroupcontext.cxx
index 61aadb45d862..1a9cb4113871 100644
--- a/oox/source/drawingml/shapegroupcontext.cxx
+++ b/oox/source/drawingml/shapegroupcontext.cxx
@@ -85,7 +85,8 @@ ContextHandlerRef ShapeGroupContext::onCreateContext( 
sal_Int32 aElementToken, c
         {
             ShapePtr pShape = 
std::make_shared<Shape>("com.sun.star.drawing.ConnectorShape");
             pShape->setLockedCanvas(mpGroupShapePtr->getLockedCanvas());
-            return new ConnectorShapeContext( *this, mpGroupShapePtr, pShape );
+            return new ConnectorShapeContext(*this, mpGroupShapePtr, pShape,
+                                             
pShape->getConnectorShapeProperties());
         }
     case XML_grpSp:         // group shape
         return new ShapeGroupContext( *this, mpGroupShapePtr, 
std::make_shared<Shape>( "com.sun.star.drawing.GroupShape" ) );
diff --git a/oox/source/drawingml/shapepropertiescontext.cxx 
b/oox/source/drawingml/shapepropertiescontext.cxx
index e0fc3274c731..935cc4970c7c 100644
--- a/oox/source/drawingml/shapepropertiescontext.cxx
+++ b/oox/source/drawingml/shapepropertiescontext.cxx
@@ -62,16 +62,10 @@ ContextHandlerRef ShapePropertiesContext::onCreateContext( 
sal_Int32 aElementTok
         {
             sal_Int32 nToken = rAttribs.getToken( XML_prst, 0 );
             // TODO: Move the following checks to a separate place or as a 
separate function
-            if ( nToken == XML_line )
+            if (nToken == XML_line && !mrShape.isConnectorShape())
             {
                 mrShape.getServiceName() = "com.sun.star.drawing.LineShape";
             }
-            if( ( nToken >= XML_bentConnector2 && nToken <= XML_bentConnector5 
) ||
-                ( nToken >= XML_curvedConnector2 && nToken <= 
XML_curvedConnector5 ) ||
-                  nToken == XML_straightConnector1 )
-            {
-                mrShape.getServiceName() = "com.sun.star.drawing.CustomShape";
-            }
 
             // We got a preset geometry, forget the geometry inherited from 
the placeholder shape.
             mrShape.getCustomShapeProperties() = 
std::make_shared<CustomShapeProperties>();
diff --git a/oox/source/export/shapes.cxx b/oox/source/export/shapes.cxx
index ea0e21f457d8..0405c975db0a 100644
--- a/oox/source/export/shapes.cxx
+++ b/oox/source/export/shapes.cxx
@@ -1496,7 +1496,8 @@ ShapeExport& ShapeExport::WriteConnectorShape( const 
Reference< XShape >& xShape
         pFS->startElementNS(mnXmlNamespace, XML_cNvCxnSpPr);
         WriteConnectorConnections(aConnectorEntry, GetShapeID(rXShapeA), 
GetShapeID(rXShapeB));
         pFS->endElementNS(mnXmlNamespace, XML_cNvCxnSpPr);
-        pFS->singleElementNS(mnXmlNamespace, XML_nvPr);
+        if (GetDocumentType() == DOCUMENT_PPTX)
+            pFS->singleElementNS(mnXmlNamespace, XML_nvPr);
         pFS->endElementNS(mnXmlNamespace, XML_nvCxnSpPr);
     }
 
diff --git a/oox/source/ppt/pptshapegroupcontext.cxx 
b/oox/source/ppt/pptshapegroupcontext.cxx
index 4355f951bc8b..4ca58a383af8 100644
--- a/oox/source/ppt/pptshapegroupcontext.cxx
+++ b/oox/source/ppt/pptshapegroupcontext.cxx
@@ -90,7 +90,11 @@ ContextHandlerRef PPTShapeGroupContext::onCreateContext( 
sal_Int32 aElementToken
         return new ShapeStyleContext( getParser() );
 */
     case PPT_TOKEN( cxnSp ):        // connector shape
-        return new oox::drawingml::ConnectorShapeContext( *this, 
mpGroupShapePtr, std::make_shared<PPTShape>( meShapeLocation, 
"com.sun.star.drawing.ConnectorShape" ) );
+    {
+        auto pShape = std::make_shared<PPTShape>(meShapeLocation, 
"com.sun.star.drawing.ConnectorShape");
+        return new oox::drawingml::ConnectorShapeContext(*this, 
mpGroupShapePtr, pShape,
+                                                         
pShape->getConnectorShapeProperties());
+    }
     case PPT_TOKEN( grpSp ):        // group shape
         return new PPTShapeGroupContext( *this, mpSlidePersistPtr, 
meShapeLocation, mpGroupShapePtr, std::make_shared<PPTShape>( meShapeLocation, 
"com.sun.star.drawing.GroupShape" ) );
     case PPT_TOKEN( sp ):           // Shape
diff --git a/oox/source/ppt/slidepersist.cxx b/oox/source/ppt/slidepersist.cxx
index ae9f0f567a7c..061dda725551 100644
--- a/oox/source/ppt/slidepersist.cxx
+++ b/oox/source/ppt/slidepersist.cxx
@@ -41,6 +41,9 @@
 #include <com/sun/star/style/XStyleFamiliesSupplier.hpp>
 #include <com/sun/star/container/XNamed.hpp>
 #include <com/sun/star/animations/XAnimationNodeSupplier.hpp>
+#include <com/sun/star/drawing/XGluePointsSupplier.hpp>
+#include <com/sun/star/container/XIdentifierContainer.hpp>
+#include <com/sun/star/drawing/EnhancedCustomShapeGluePointType.hpp>
 
 using namespace ::com::sun::star;
 using namespace ::oox::core;
@@ -143,12 +146,19 @@ void SlidePersist::createXShapes( XmlFilterBase& 
rFilterBase )
             PPTShape* pPPTShape = dynamic_cast< PPTShape* >( child.get() );
             basegfx::B2DHomMatrix aTransformation;
             if ( pPPTShape )
+            {
                 pPPTShape->addShape( rFilterBase, *this, getTheme().get(), 
xShapes, aTransformation, &getShapeMap() );
+                if (pPPTShape->isConnectorShape())
+                    maConnectorShapeId.push_back(pPPTShape->getId());
+            }
             else
                 child->addShape( rFilterBase, getTheme().get(), xShapes, 
aTransformation, maShapesPtr->getFillProperties(), &getShapeMap() );
         }
     }
 
+    if (!maConnectorShapeId.empty())
+        createConnectorShapeConnection();
+
     Reference< XAnimationNodeSupplier > xNodeSupplier( getPage(), UNO_QUERY);
     if( !xNodeSupplier.is() )
         return;
@@ -330,6 +340,66 @@ Reference<XAnimationNode> 
SlidePersist::getAnimationNode(const OUString& sId) co
     return aResult;
 }
 
+// create connection between two shape with a connector shape.
+void SlidePersist::createConnectorShapeConnection()
+{
+    sal_Int32 nConnectorShapeCount = maConnectorShapeId.size();
+    for (sal_Int32 i = 0; i < nConnectorShapeCount; i++)
+    {
+        const auto& pIt = maShapeMap.find(maConnectorShapeId[i]);
+        oox::drawingml::ConnectorShapePropertiesList aConnectorShapeProperties
+            = pIt->second->getConnectorShapeProperties();
+        uno::Reference<drawing::XShape> xConnector(pIt->second->getXShape(), 
uno::UNO_QUERY);
+        uno::Reference<beans::XPropertySet> xPropertySet(xConnector, 
uno::UNO_QUERY);
+
+        if (xConnector.is())
+        {
+            sal_Int32 nCount = aConnectorShapeProperties.size();
+            for (sal_Int32 j = 0; j < nCount; j++)
+            {
+                OUString aDestShapeId = 
aConnectorShapeProperties[j].maDestShapeId;
+                const auto& pShape = maShapeMap.find(aDestShapeId);
+                uno::Reference<drawing::XShape> 
xShape(pShape->second->getXShape(), uno::UNO_QUERY);
+                uno::Reference<beans::XPropertySet> xSet(xShape, 
uno::UNO_QUERY);
+                if (xShape.is())
+                {
+                    uno::Reference<drawing::XGluePointsSupplier> 
xSupplier(xShape, uno::UNO_QUERY);
+                    css::uno::Reference<css::container::XIdentifierContainer> 
xGluePoints(
+                        xSupplier->getGluePoints(), uno::UNO_QUERY);
+
+                    sal_Int32 nCountGluePoints = 
xGluePoints->getIdentifiers().getLength();
+                    sal_Int32 nGlueId = 
aConnectorShapeProperties[j].mnDestGlueId;
+
+                    // The first 4 glue points belong to the bounding box.
+                    if (nCountGluePoints > 4)
+                        nGlueId += 4;
+                    else
+                    {
+                        // change id of the left and right glue points of the 
bounding box (1 <-> 3)
+                        if (nGlueId == 1)
+                            nGlueId = 3; // Right
+                        else if (nGlueId == 3)
+                            nGlueId = 1; // Left
+                    }
+
+                    bool bStart = aConnectorShapeProperties[j].mbStartShape;
+                    if (bStart)
+                    {
+                        xPropertySet->setPropertyValue("StartShape", 
uno::Any(xShape));
+                        xPropertySet->setPropertyValue("StartGluePointIndex", 
uno::Any(nGlueId));
+                    }
+                    else
+                    {
+                        xPropertySet->setPropertyValue("EndShape", 
uno::Any(xShape));
+                        xPropertySet->setPropertyValue("EndGluePointIndex", 
uno::Any(nGlueId));
+                    }
+                }
+            }
+        }
+    }
+    maConnectorShapeId.clear();
+}
+
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/oox/source/shape/LockedCanvasContext.cxx 
b/oox/source/shape/LockedCanvasContext.cxx
index 5eac3b5ceff7..19267954cf06 100644
--- a/oox/source/shape/LockedCanvasContext.cxx
+++ b/oox/source/shape/LockedCanvasContext.cxx
@@ -51,9 +51,10 @@ LockedCanvasContext::onCreateContext(sal_Int32 
nElementToken, const ::oox::Attri
         }
         case XML_cxnSp: // CT_GvmlConnector
         {
-            return new oox::drawingml::ConnectorShapeContext(
-                *this, mpShapePtr,
-                
std::make_shared<oox::drawingml::Shape>("com.sun.star.drawing.ConnectorShape"));
+            oox::drawingml::ShapePtr pShape
+                = 
std::make_shared<oox::drawingml::Shape>("com.sun.star.drawing.ConnectorShape");
+            return new oox::drawingml::ConnectorShapeContext(*this, 
mpShapePtr, pShape,
+                                                             
pShape->getConnectorShapeProperties());
         }
         case XML_pic: // CT_GvmlPicture
         {
diff --git a/sc/source/filter/oox/drawingfragment.cxx 
b/sc/source/filter/oox/drawingfragment.cxx
index 5ce7b2d21ce5..033720a1bf1e 100644
--- a/sc/source/filter/oox/drawingfragment.cxx
+++ b/sc/source/filter/oox/drawingfragment.cxx
@@ -139,7 +139,8 @@ GroupShapeContext::GroupShapeContext( const 
FragmentHandler2& rParent,
         {
             ShapePtr xShape = std::make_shared<Shape>( rHelper, rAttribs, 
"com.sun.star.drawing.ConnectorShape" );
             if( pxShape ) *pxShape = xShape;
-            return new ConnectorShapeContext( rParent, rxParentShape, xShape );
+            return new ConnectorShapeContext(rParent, rxParentShape, xShape,
+                                             
xShape->getConnectorShapeProperties());
         }
         case XDR_TOKEN( pic ):
         {
diff --git a/sd/qa/unit/data/pptx/tdf89449.pptx 
b/sd/qa/unit/data/pptx/tdf89449.pptx
new file mode 100644
index 000000000000..e55cbf21a927
Binary files /dev/null and b/sd/qa/unit/data/pptx/tdf89449.pptx differ
diff --git a/sd/qa/unit/data/xml/fdo47434_0.xml 
b/sd/qa/unit/data/xml/fdo47434_0.xml
index 512f422fd198..24dc47005623 100644
--- a/sd/qa/unit/data/xml/fdo47434_0.xml
+++ b/sd/qa/unit/data/xml/fdo47434_0.xml
@@ -1,10 +1,6 @@
 <?xml version="1.0"?>
 <XShapes>
- <XShape positionX="5358" positionY="4366" sizeX="5555" sizeY="1" 
type="com.sun.star.drawing.CustomShape" name="Straight Arrow Connector 4" 
fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" 
textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" 
textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" 
textRightDistance="250" textUpperDistance="125" textLowerDistance="125" 
textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" 
textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" 
textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" 
textAnimationStartInside="false" textAnimationStopInside="false" 
textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" 
fillTransparence="0" fillTransparenceGradientName="">
-  <FillTransparenceGradient style="LINEAR" startColor="000000" 
endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" 
startIntensity="100" endIntensity="100" stepCount="0"/>
-  <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" 
border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" 
stepCount="0"/>
-  <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
-  <FillBitmap width="32" height="32"/>
+ <XShape positionX="5357" positionY="4365" sizeX="5557" sizeY="1" 
type="com.sun.star.drawing.ConnectorShape" name="Straight Arrow Connector 4" 
fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" 
textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" 
textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" 
textRightDistance="250" textUpperDistance="125" textLowerDistance="125" 
textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" 
textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" 
textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" 
textAnimationStartInside="false" textAnimationStopInside="false" 
textWritingMode="LR_TB" lineStyle="SOLID">
   <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" 
distance="20"/>
   <LineStart/>
   <LineEnd>
@@ -21,53 +17,8 @@
     <point positionX="175" positionY="0" polygonFlags="NORMAL"/>
    </pointSequence>
   </LineEnd>
-  <Transformation>
-   <Line1 column1="5556.000000" column2="0.000000" column3="5358.000000"/>
-   <Line2 column1="0.000000" column2="2.000000" column3="4366.000000"/>
-   <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
-  </Transformation>
-  <CustomShapeGeometry>
-   <PropertyValue name="MirroredX" value="false" handle="0" 
propertyState="DIRECT_VALUE"/>
-   <PropertyValue name="MirroredY" value="false" handle="0" 
propertyState="DIRECT_VALUE"/>
-   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" 
propertyState="DIRECT_VALUE"/>
-   <PropertyValue name="TextPreRotateAngle" value="0" handle="0" 
propertyState="DIRECT_VALUE"/>
-   <PropertyValue name="Type" value="mso-spt32" handle="0" 
propertyState="DIRECT_VALUE"/>
-   <PropertyValue name="AdjustmentValues">
-    <AdjustmentValues/>
-   </PropertyValue>
-   <PropertyValue name="ViewBox">
-    <ViewBox x="0" y="0" width="21600" height="21600"/>
-   </PropertyValue>
-   <PropertyValue name="Path">
-    <Path>
-     <PropertyValue name="Coordinates">
-      <Coordinates>
-       <EnhancedCustomShapeParameterPair>
-        <First value="0" type="0"/>
-        <Second value="0" type="0"/>
-       </EnhancedCustomShapeParameterPair>
-       <EnhancedCustomShapeParameterPair>
-        <First value="21600" type="0"/>
-        <Second value="21600" type="0"/>
-       </EnhancedCustomShapeParameterPair>
-      </Coordinates>
-     </PropertyValue>
-     <PropertyValue name="Segments">
-      <Segments>
-       <EnhancedCustomShapeSegment command="1" count="1"/>
-       <EnhancedCustomShapeSegment command="2" count="1"/>
-       <EnhancedCustomShapeSegment command="5" count="0"/>
-      </Segments>
-     </PropertyValue>
-    </Path>
-   </PropertyValue>
-  </CustomShapeGeometry>
  </XShape>
- <XShape positionX="5356" positionY="5159" sizeX="5555" sizeY="1" 
type="com.sun.star.drawing.CustomShape" name="Straight Arrow Connector 5" 
fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" 
textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" 
textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" 
textRightDistance="250" textUpperDistance="125" textLowerDistance="125" 
textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" 
textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" 
textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" 
textAnimationStartInside="false" textAnimationStopInside="false" 
textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" 
fillTransparence="0" fillTransparenceGradientName="">
-  <FillTransparenceGradient style="LINEAR" startColor="000000" 
endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" 
startIntensity="100" endIntensity="100" stepCount="0"/>
-  <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" 
border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" 
stepCount="0"/>
-  <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
-  <FillBitmap width="32" height="32"/>
+ <XShape positionX="5357" positionY="5159" sizeX="5557" sizeY="0" 
type="com.sun.star.drawing.ConnectorShape" name="Straight Arrow Connector 5" 
fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" 
textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" 
textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" 
textRightDistance="250" textUpperDistance="125" textLowerDistance="125" 
textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" 
textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" 
textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" 
textAnimationStartInside="false" textAnimationStopInside="false" 
textWritingMode="LR_TB" lineStyle="SOLID">
   <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" 
distance="20"/>
   <LineStart/>
   <LineEnd>
@@ -84,53 +35,8 @@
     <point positionX="175" positionY="0" polygonFlags="NORMAL"/>
    </pointSequence>
   </LineEnd>
-  <Transformation>
-   <Line1 column1="5556.000000" column2="0.000000" column3="5356.000000"/>
-   <Line2 column1="0.000000" column2="2.000000" column3="5159.000000"/>
-   <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
-  </Transformation>
-  <CustomShapeGeometry>
-   <PropertyValue name="MirroredX" value="true" handle="0" 
propertyState="DIRECT_VALUE"/>
-   <PropertyValue name="MirroredY" value="false" handle="0" 
propertyState="DIRECT_VALUE"/>
-   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" 
propertyState="DIRECT_VALUE"/>
-   <PropertyValue name="TextPreRotateAngle" value="0" handle="0" 
propertyState="DIRECT_VALUE"/>
-   <PropertyValue name="Type" value="mso-spt32" handle="0" 
propertyState="DIRECT_VALUE"/>
-   <PropertyValue name="AdjustmentValues">
-    <AdjustmentValues/>
-   </PropertyValue>
-   <PropertyValue name="ViewBox">
-    <ViewBox x="0" y="0" width="21600" height="21600"/>
-   </PropertyValue>
-   <PropertyValue name="Path">
-    <Path>
-     <PropertyValue name="Coordinates">
-      <Coordinates>
-       <EnhancedCustomShapeParameterPair>
-        <First value="0" type="0"/>
-        <Second value="0" type="0"/>
-       </EnhancedCustomShapeParameterPair>
-       <EnhancedCustomShapeParameterPair>
-        <First value="21600" type="0"/>
-        <Second value="21600" type="0"/>
-       </EnhancedCustomShapeParameterPair>
-      </Coordinates>
-     </PropertyValue>
-     <PropertyValue name="Segments">
-      <Segments>
-       <EnhancedCustomShapeSegment command="1" count="1"/>
-       <EnhancedCustomShapeSegment command="2" count="1"/>
-       <EnhancedCustomShapeSegment command="5" count="0"/>
-      </Segments>
-     </PropertyValue>
-    </Path>
-   </PropertyValue>
-  </CustomShapeGeometry>
  </XShape>
- <XShape positionX="14486" positionY="4366" sizeX="5555" sizeY="1" 
type="com.sun.star.drawing.CustomShape" name="Straight Arrow Connector 6" 
fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" 
textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" 
textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" 
textRightDistance="250" textUpperDistance="125" textLowerDistance="125" 
textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" 
textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" 
textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" 
textAnimationStartInside="false" textAnimationStopInside="false" 
textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" 
fillTransparence="0" fillTransparenceGradientName="">
-  <FillTransparenceGradient style="LINEAR" startColor="000000" 
endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" 
startIntensity="100" endIntensity="100" stepCount="0"/>
-  <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" 
border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" 
stepCount="0"/>
-  <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
-  <FillBitmap width="32" height="32"/>
+ <XShape positionX="14485" positionY="4365" sizeX="5557" sizeY="1" 
type="com.sun.star.drawing.ConnectorShape" name="Straight Arrow Connector 6" 
fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" 
textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" 
textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" 
textRightDistance="250" textUpperDistance="125" textLowerDistance="125" 
textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" 
textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" 
textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" 
textAnimationStartInside="false" textAnimationStopInside="false" 
textWritingMode="LR_TB" lineStyle="SOLID">
   <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" 
distance="20"/>
   <LineStart/>
   <LineEnd>
@@ -147,53 +53,8 @@
     <point positionX="175" positionY="0" polygonFlags="NORMAL"/>
    </pointSequence>
   </LineEnd>
-  <Transformation>
-   <Line1 column1="5556.000000" column2="0.000000" column3="14486.000000"/>
-   <Line2 column1="0.000000" column2="2.000000" column3="4366.000000"/>
-   <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
-  </Transformation>
-  <CustomShapeGeometry>
-   <PropertyValue name="MirroredX" value="false" handle="0" 
propertyState="DIRECT_VALUE"/>
-   <PropertyValue name="MirroredY" value="false" handle="0" 
propertyState="DIRECT_VALUE"/>
-   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" 
propertyState="DIRECT_VALUE"/>
-   <PropertyValue name="TextPreRotateAngle" value="0" handle="0" 
propertyState="DIRECT_VALUE"/>
-   <PropertyValue name="Type" value="mso-spt32" handle="0" 
propertyState="DIRECT_VALUE"/>
-   <PropertyValue name="AdjustmentValues">
-    <AdjustmentValues/>
-   </PropertyValue>
-   <PropertyValue name="ViewBox">
-    <ViewBox x="0" y="0" width="21600" height="21600"/>
-   </PropertyValue>
-   <PropertyValue name="Path">
-    <Path>
-     <PropertyValue name="Coordinates">
-      <Coordinates>
-       <EnhancedCustomShapeParameterPair>
-        <First value="0" type="0"/>
-        <Second value="0" type="0"/>
-       </EnhancedCustomShapeParameterPair>
-       <EnhancedCustomShapeParameterPair>
-        <First value="21600" type="0"/>
-        <Second value="21600" type="0"/>
-       </EnhancedCustomShapeParameterPair>
-      </Coordinates>
-     </PropertyValue>
-     <PropertyValue name="Segments">
-      <Segments>
-       <EnhancedCustomShapeSegment command="1" count="1"/>
-       <EnhancedCustomShapeSegment command="2" count="1"/>
-       <EnhancedCustomShapeSegment command="5" count="0"/>
-      </Segments>
-     </PropertyValue>
-    </Path>
-   </PropertyValue>
-  </CustomShapeGeometry>
  </XShape>
- <XShape positionX="14484" positionY="5159" sizeX="5555" sizeY="1" 
type="com.sun.star.drawing.CustomShape" name="Straight Arrow Connector 8" 
fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" 
textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" 
textHorizontalAdjust="BLOCK" textVerticalAdjust="TOP" textLeftDistance="250" 
textRightDistance="250" textUpperDistance="125" textLowerDistance="125" 
textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" 
textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" 
textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" 
textAnimationStartInside="false" textAnimationStopInside="false" 
textWritingMode="LR_TB" fillStyle="NONE" fillColor="729fcf" 
fillTransparence="0" fillTransparenceGradientName="">
-  <FillTransparenceGradient style="LINEAR" startColor="000000" 
endColor="000000" angle="0" border="0" xOffset="50" yOffset="50" 
startIntensity="100" endIntensity="100" stepCount="0"/>
-  <FillGradient style="LINEAR" startColor="3465a4" endColor="ffffff" angle="0" 
border="0" xOffset="50" yOffset="50" startIntensity="100" endIntensity="100" 
stepCount="0"/>
-  <FillHatch style="SINGLE" color="3465a4" distance="20" angle="0"/>
-  <FillBitmap width="32" height="32"/>
+ <XShape positionX="14485" positionY="5159" sizeX="5557" sizeY="0" 
type="com.sun.star.drawing.ConnectorShape" name="Straight Arrow Connector 8" 
fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" 
textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" 
textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" 
textRightDistance="250" textUpperDistance="125" textLowerDistance="125" 
textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" 
textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" 
textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" 
textAnimationStartInside="false" textAnimationStopInside="false" 
textWritingMode="LR_TB" lineStyle="SOLID">
   <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" 
distance="20"/>
   <LineStart/>
   <LineEnd>
@@ -210,46 +71,5 @@
     <point positionX="175" positionY="0" polygonFlags="NORMAL"/>
    </pointSequence>
   </LineEnd>
-  <Transformation>
-   <Line1 column1="5556.000000" column2="0.000000" column3="14484.000000"/>
-   <Line2 column1="0.000000" column2="2.000000" column3="5159.000000"/>
-   <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
-  </Transformation>
-  <CustomShapeGeometry>
-   <PropertyValue name="MirroredX" value="true" handle="0" 
propertyState="DIRECT_VALUE"/>
-   <PropertyValue name="MirroredY" value="false" handle="0" 
propertyState="DIRECT_VALUE"/>
-   <PropertyValue name="TextCameraZRotateAngle" value="0" handle="0" 
propertyState="DIRECT_VALUE"/>
-   <PropertyValue name="TextPreRotateAngle" value="0" handle="0" 
propertyState="DIRECT_VALUE"/>
-   <PropertyValue name="Type" value="mso-spt32" handle="0" 
propertyState="DIRECT_VALUE"/>
-   <PropertyValue name="AdjustmentValues">
-    <AdjustmentValues/>
-   </PropertyValue>
-   <PropertyValue name="ViewBox">
-    <ViewBox x="0" y="0" width="21600" height="21600"/>
-   </PropertyValue>
-   <PropertyValue name="Path">
-    <Path>
-     <PropertyValue name="Coordinates">
-      <Coordinates>
-       <EnhancedCustomShapeParameterPair>
-        <First value="0" type="0"/>
-        <Second value="0" type="0"/>
-       </EnhancedCustomShapeParameterPair>
-       <EnhancedCustomShapeParameterPair>
-        <First value="21600" type="0"/>
-        <Second value="21600" type="0"/>
-       </EnhancedCustomShapeParameterPair>
-      </Coordinates>
-     </PropertyValue>
-     <PropertyValue name="Segments">
-      <Segments>
-       <EnhancedCustomShapeSegment command="1" count="1"/>
-       <EnhancedCustomShapeSegment command="2" count="1"/>
-       <EnhancedCustomShapeSegment command="5" count="0"/>
-      </Segments>
-     </PropertyValue>
-    </Path>
-   </PropertyValue>
-  </CustomShapeGeometry>
  </XShape>
 </XShapes>
diff --git a/sd/qa/unit/data/xml/tdf100491_0.xml 
b/sd/qa/unit/data/xml/tdf100491_0.xml
index 0c250e6fc840..e45eba130ebf 100644
--- a/sd/qa/unit/data/xml/tdf100491_0.xml
+++ b/sd/qa/unit/data/xml/tdf100491_0.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <XShapes>
- <XShape positionX="3680" positionY="2451" sizeX="6" sizeY="2990" 
type="com.sun.star.drawing.LineShape" name="Straight Connector 3" 
fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" 
textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" 
textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" 
textRightDistance="250" textUpperDistance="125" textLowerDistance="125" 
textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" 
textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" 
textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" 
textAnimationStartInside="false" textAnimationStopInside="false" 
textWritingMode="LR_TB" lineStyle="SOLID">
+ <XShape positionX="3680" positionY="2451" sizeX="6" sizeY="2990" 
type="com.sun.star.drawing.ConnectorShape" name="Straight Connector 3" 
fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" 
textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" 
textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" 
textRightDistance="250" textUpperDistance="125" textLowerDistance="125" 
textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" 
textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" 
textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" 
textAnimationStartInside="false" textAnimationStopInside="false" 
textWritingMode="LR_TB" lineStyle="SOLID">
   <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" 
distance="20"/>
   <LineStart>
    <pointSequence>
@@ -17,25 +17,8 @@
    </pointSequence>
   </LineStart>
   <LineEnd/>
-  <PolyPolygon>
-   <pointSequence>
-    <point positionX="3686" positionY="2451"/>
-    <point positionX="3680" positionY="5441"/>
-   </pointSequence>
-  </PolyPolygon>
-  <Geometry>
-   <pointSequence>
-    <point positionX="6" positionY="0"/>
-    <point positionX="0" positionY="2990"/>
-   </pointSequence>
-  </Geometry>
-  <Transformation>
-   <Line1 column1="6.000000" column2="0.000000" column3="3680.000000"/>
-   <Line2 column1="0.000000" column2="2990.000000" column3="2451.000000"/>
-   <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
-  </Transformation>
  </XShape>
- <XShape positionX="4324" positionY="2449" sizeX="5" sizeY="2990" 
type="com.sun.star.drawing.LineShape" name="Straight Connector 4" 
fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" 
textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" 
textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" 
textRightDistance="250" textUpperDistance="125" textLowerDistance="125" 
textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" 
textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" 
textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" 
textAnimationStartInside="false" textAnimationStopInside="false" 
textWritingMode="LR_TB" lineStyle="SOLID">
+ <XShape positionX="4324" positionY="2449" sizeX="5" sizeY="2990" 
type="com.sun.star.drawing.ConnectorShape" name="Straight Connector 4" 
fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" 
textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" 
textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" 
textRightDistance="250" textUpperDistance="125" textLowerDistance="125" 
textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" 
textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" 
textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" 
textAnimationStartInside="false" textAnimationStopInside="false" 
textWritingMode="LR_TB" lineStyle="SOLID">
   <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" 
distance="20"/>
   <LineStart>
    <pointSequence>
@@ -52,25 +35,8 @@
    </pointSequence>
   </LineStart>
   <LineEnd/>
-  <PolyPolygon>
-   <pointSequence>
-    <point positionX="4329" positionY="2449"/>
-    <point positionX="4324" positionY="5439"/>
-   </pointSequence>
-  </PolyPolygon>
-  <Geometry>
-   <pointSequence>
-    <point positionX="5" positionY="0"/>
-    <point positionX="0" positionY="2990"/>
-   </pointSequence>
-  </Geometry>
-  <Transformation>
-   <Line1 column1="5.000000" column2="0.000000" column3="4324.000000"/>
-   <Line2 column1="0.000000" column2="2990.000000" column3="2449.000000"/>
-   <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
-  </Transformation>
  </XShape>
- <XShape positionX="4947" positionY="2449" sizeX="5" sizeY="2990" 
type="com.sun.star.drawing.LineShape" name="Straight Connector 5" 
fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" 
textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" 
textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" 
textRightDistance="250" textUpperDistance="125" textLowerDistance="125" 
textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" 
textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" 
textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" 
textAnimationStartInside="false" textAnimationStopInside="false" 
textWritingMode="LR_TB" lineStyle="SOLID">
+ <XShape positionX="4947" positionY="2449" sizeX="5" sizeY="2990" 
type="com.sun.star.drawing.ConnectorShape" name="Straight Connector 5" 
fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" 
textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" 
textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" 
textRightDistance="250" textUpperDistance="125" textLowerDistance="125" 
textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" 
textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" 
textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" 
textAnimationStartInside="false" textAnimationStopInside="false" 
textWritingMode="LR_TB" lineStyle="SOLID">
   <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" 
distance="20"/>
   <LineStart>
    <pointSequence>
@@ -87,25 +53,8 @@
    </pointSequence>
   </LineStart>
   <LineEnd/>
-  <PolyPolygon>
-   <pointSequence>
-    <point positionX="4952" positionY="2449"/>
-    <point positionX="4947" positionY="5439"/>
-   </pointSequence>
-  </PolyPolygon>
-  <Geometry>
-   <pointSequence>
-    <point positionX="5" positionY="0"/>
-    <point positionX="0" positionY="2990"/>
-   </pointSequence>
-  </Geometry>
-  <Transformation>
-   <Line1 column1="5.000000" column2="0.000000" column3="4947.000000"/>
-   <Line2 column1="0.000000" column2="2990.000000" column3="2449.000000"/>
-   <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
-  </Transformation>
  </XShape>
- <XShape positionX="9401" positionY="2435" sizeX="5" sizeY="2988" 
type="com.sun.star.drawing.LineShape" name="Straight Connector 6" 
fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" 
textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" 
textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" 
textRightDistance="250" textUpperDistance="125" textLowerDistance="125" 
textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" 
textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" 
textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" 
textAnimationStartInside="false" textAnimationStopInside="false" 
textWritingMode="LR_TB" lineStyle="SOLID">
+ <XShape positionX="9401" positionY="2435" sizeX="5" sizeY="2988" 
type="com.sun.star.drawing.ConnectorShape" name="Straight Connector 6" 
fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" 
textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" 
textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" 
textRightDistance="250" textUpperDistance="125" textLowerDistance="125" 
textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" 
textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" 
textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" 
textAnimationStartInside="false" textAnimationStopInside="false" 
textWritingMode="LR_TB" lineStyle="SOLID">
   <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" 
distance="20"/>
   <LineStart>
    <pointSequence>
@@ -122,25 +71,8 @@
    </pointSequence>
   </LineStart>
   <LineEnd/>
-  <PolyPolygon>
-   <pointSequence>
-    <point positionX="9406" positionY="2435"/>
-    <point positionX="9401" positionY="5423"/>
-   </pointSequence>
-  </PolyPolygon>
-  <Geometry>
-   <pointSequence>
-    <point positionX="5" positionY="0"/>
-    <point positionX="0" positionY="2988"/>
-   </pointSequence>
-  </Geometry>
-  <Transformation>
-   <Line1 column1="5.000000" column2="0.000000" column3="9401.000000"/>
-   <Line2 column1="0.000000" column2="2988.000000" column3="2435.000000"/>
-   <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
-  </Transformation>
  </XShape>
- <XShape positionX="10043" positionY="2433" sizeX="5" sizeY="2988" 
type="com.sun.star.drawing.LineShape" name="Straight Connector 7" 
fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" 
textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" 
textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" 
textRightDistance="250" textUpperDistance="125" textLowerDistance="125" 
textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" 
textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" 
textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" 
textAnimationStartInside="false" textAnimationStopInside="false" 
textWritingMode="LR_TB" lineStyle="SOLID">
+ <XShape positionX="10043" positionY="2433" sizeX="5" sizeY="2988" 
type="com.sun.star.drawing.ConnectorShape" name="Straight Connector 7" 
fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" 
textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" 
textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" 
textRightDistance="250" textUpperDistance="125" textLowerDistance="125" 
textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" 
textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" 
textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" 
textAnimationStartInside="false" textAnimationStopInside="false" 
textWritingMode="LR_TB" lineStyle="SOLID">
   <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" 
distance="20"/>
   <LineStart>
    <pointSequence>
@@ -157,25 +89,8 @@
    </pointSequence>
   </LineStart>
   <LineEnd/>
-  <PolyPolygon>
-   <pointSequence>
-    <point positionX="10048" positionY="2433"/>
-    <point positionX="10043" positionY="5421"/>
-   </pointSequence>
-  </PolyPolygon>
-  <Geometry>
-   <pointSequence>
-    <point positionX="5" positionY="0"/>
-    <point positionX="0" positionY="2988"/>
-   </pointSequence>
-  </Geometry>
-  <Transformation>
-   <Line1 column1="5.000000" column2="0.000000" column3="10043.000000"/>
-   <Line2 column1="0.000000" column2="2988.000000" column3="2433.000000"/>
-   <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
-  </Transformation>
  </XShape>
- <XShape positionX="10669" positionY="2435" sizeX="5" sizeY="2990" 
type="com.sun.star.drawing.LineShape" name="Straight Connector 8" 
fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" 
textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" 
textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" 
textRightDistance="250" textUpperDistance="125" textLowerDistance="125" 
textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" 
textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" 
textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" 
textAnimationStartInside="false" textAnimationStopInside="false" 
textWritingMode="LR_TB" lineStyle="SOLID">
+ <XShape positionX="10669" positionY="2435" sizeX="5" sizeY="2990" 
type="com.sun.star.drawing.ConnectorShape" name="Straight Connector 8" 
fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" 
textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" 
textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" 
textRightDistance="250" textUpperDistance="125" textLowerDistance="125" 
textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" 
textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" 
textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" 
textAnimationStartInside="false" textAnimationStopInside="false" 
textWritingMode="LR_TB" lineStyle="SOLID">
   <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" 
distance="20"/>
   <LineStart>
    <pointSequence>
@@ -192,25 +107,8 @@
    </pointSequence>
   </LineStart>
   <LineEnd/>
-  <PolyPolygon>
-   <pointSequence>
-    <point positionX="10674" positionY="2435"/>
-    <point positionX="10669" positionY="5425"/>
-   </pointSequence>
-  </PolyPolygon>
-  <Geometry>
-   <pointSequence>
-    <point positionX="5" positionY="0"/>
-    <point positionX="0" positionY="2990"/>
-   </pointSequence>
-  </Geometry>
-  <Transformation>
-   <Line1 column1="5.000000" column2="0.000000" column3="10669.000000"/>
-   <Line2 column1="0.000000" column2="2990.000000" column3="2435.000000"/>
-   <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
-  </Transformation>
  </XShape>
- <XShape positionX="12466" positionY="2433" sizeX="6" sizeY="2988" 
type="com.sun.star.drawing.LineShape" name="Straight Connector 9" 
fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" 
textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" 
textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" 
textRightDistance="250" textUpperDistance="125" textLowerDistance="125" 
textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" 
textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" 
textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" 
textAnimationStartInside="false" textAnimationStopInside="false" 
textWritingMode="LR_TB" lineStyle="SOLID">
+ <XShape positionX="12466" positionY="2433" sizeX="6" sizeY="2988" 
type="com.sun.star.drawing.ConnectorShape" name="Straight Connector 9" 
fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" 
textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" 
textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" 
textRightDistance="250" textUpperDistance="125" textLowerDistance="125" 
textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" 
textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" 
textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" 
textAnimationStartInside="false" textAnimationStopInside="false" 
textWritingMode="LR_TB" lineStyle="SOLID">
   <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" 
distance="20"/>
   <LineStart>
    <pointSequence>
@@ -227,25 +125,8 @@
    </pointSequence>
   </LineStart>
   <LineEnd/>
-  <PolyPolygon>
-   <pointSequence>
-    <point positionX="12472" positionY="2433"/>
-    <point positionX="12466" positionY="5421"/>
-   </pointSequence>
-  </PolyPolygon>
-  <Geometry>
-   <pointSequence>
-    <point positionX="6" positionY="0"/>
-    <point positionX="0" positionY="2988"/>
-   </pointSequence>
-  </Geometry>
-  <Transformation>
-   <Line1 column1="6.000000" column2="0.000000" column3="12466.000000"/>
-   <Line2 column1="0.000000" column2="2988.000000" column3="2433.000000"/>
-   <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
-  </Transformation>
  </XShape>
- <XShape positionX="13107" positionY="2431" sizeX="5" sizeY="2988" 
type="com.sun.star.drawing.LineShape" name="Straight Connector 10" 
fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" 
textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" 
textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" 
textRightDistance="250" textUpperDistance="125" textLowerDistance="125" 
textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" 
textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" 
textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" 
textAnimationStartInside="false" textAnimationStopInside="false" 
textWritingMode="LR_TB" lineStyle="SOLID">
+ <XShape positionX="13107" positionY="2431" sizeX="5" sizeY="2988" 
type="com.sun.star.drawing.ConnectorShape" name="Straight Connector 10" 
fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" 
textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" 
textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" 
textRightDistance="250" textUpperDistance="125" textLowerDistance="125" 
textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" 
textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" 
textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" 
textAnimationStartInside="false" textAnimationStopInside="false" 
textWritingMode="LR_TB" lineStyle="SOLID">
   <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" 
distance="20"/>
   <LineStart>
    <pointSequence>
@@ -262,25 +143,8 @@
    </pointSequence>
   </LineStart>
   <LineEnd/>
-  <PolyPolygon>
-   <pointSequence>
-    <point positionX="13112" positionY="2431"/>
-    <point positionX="13107" positionY="5419"/>
-   </pointSequence>
-  </PolyPolygon>
-  <Geometry>
-   <pointSequence>
-    <point positionX="5" positionY="0"/>
-    <point positionX="0" positionY="2988"/>
-   </pointSequence>
-  </Geometry>
-  <Transformation>
-   <Line1 column1="5.000000" column2="0.000000" column3="13107.000000"/>
-   <Line2 column1="0.000000" column2="2988.000000" column3="2431.000000"/>
-   <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
-  </Transformation>
  </XShape>
- <XShape positionX="13731" positionY="2431" sizeX="5" sizeY="2988" 
type="com.sun.star.drawing.LineShape" name="Straight Connector 11" 
fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" 
textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" 
textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" 
textRightDistance="250" textUpperDistance="125" textLowerDistance="125" 
textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" 
textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" 
textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" 
textAnimationStartInside="false" textAnimationStopInside="false" 
textWritingMode="LR_TB" lineStyle="SOLID">
+ <XShape positionX="13731" positionY="2431" sizeX="5" sizeY="2988" 
type="com.sun.star.drawing.ConnectorShape" name="Straight Connector 11" 
fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" 
textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" 
textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" 
textRightDistance="250" textUpperDistance="125" textLowerDistance="125" 
textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" 
textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" 
textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" 
textAnimationStartInside="false" textAnimationStopInside="false" 
textWritingMode="LR_TB" lineStyle="SOLID">
   <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" 
distance="20"/>
   <LineStart>
    <pointSequence>
@@ -297,25 +161,8 @@
    </pointSequence>
   </LineStart>
   <LineEnd/>
-  <PolyPolygon>
-   <pointSequence>
-    <point positionX="13736" positionY="2431"/>
-    <point positionX="13731" positionY="5419"/>
-   </pointSequence>
-  </PolyPolygon>
-  <Geometry>
-   <pointSequence>
-    <point positionX="5" positionY="0"/>
-    <point positionX="0" positionY="2988"/>
-   </pointSequence>
-  </Geometry>
-  <Transformation>
-   <Line1 column1="5.000000" column2="0.000000" column3="13731.000000"/>
-   <Line2 column1="0.000000" column2="2988.000000" column3="2431.000000"/>
-   <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
-  </Transformation>
  </XShape>
- <XShape positionX="15872" positionY="2431" sizeX="6" sizeY="2988" 
type="com.sun.star.drawing.LineShape" name="Straight Connector 12" 
fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" 
textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" 
textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" 
textRightDistance="250" textUpperDistance="125" textLowerDistance="125" 
textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" 
textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" 
textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" 
textAnimationStartInside="false" textAnimationStopInside="false" 
textWritingMode="LR_TB" lineStyle="SOLID">
+ <XShape positionX="15872" positionY="2431" sizeX="6" sizeY="2988" 
type="com.sun.star.drawing.ConnectorShape" name="Straight Connector 12" 
fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" 
textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" 
textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" 
textRightDistance="250" textUpperDistance="125" textLowerDistance="125" 
textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" 
textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" 
textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" 
textAnimationStartInside="false" textAnimationStopInside="false" 
textWritingMode="LR_TB" lineStyle="SOLID">
   <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" 
distance="20"/>
   <LineStart>
    <pointSequence>
@@ -332,25 +179,8 @@
    </pointSequence>
   </LineStart>
   <LineEnd/>
-  <PolyPolygon>
-   <pointSequence>
-    <point positionX="15878" positionY="2431"/>
-    <point positionX="15872" positionY="5419"/>
-   </pointSequence>
-  </PolyPolygon>
-  <Geometry>
-   <pointSequence>
-    <point positionX="6" positionY="0"/>
-    <point positionX="0" positionY="2988"/>
-   </pointSequence>
-  </Geometry>
-  <Transformation>
-   <Line1 column1="6.000000" column2="0.000000" column3="15872.000000"/>
-   <Line2 column1="0.000000" column2="2988.000000" column3="2431.000000"/>
-   <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
-  </Transformation>
  </XShape>
- <XShape positionX="16513" positionY="2430" sizeX="5" sizeY="2988" 
type="com.sun.star.drawing.LineShape" name="Straight Connector 13" 
fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" 
textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" 
textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" 
textRightDistance="250" textUpperDistance="125" textLowerDistance="125" 
textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" 
textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" 
textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" 
textAnimationStartInside="false" textAnimationStopInside="false" 
textWritingMode="LR_TB" lineStyle="SOLID">
+ <XShape positionX="16513" positionY="2430" sizeX="5" sizeY="2988" 
type="com.sun.star.drawing.ConnectorShape" name="Straight Connector 13" 
fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" 
textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" 
textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" 
textRightDistance="250" textUpperDistance="125" textLowerDistance="125" 
textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" 
textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" 
textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" 
textAnimationStartInside="false" textAnimationStopInside="false" 
textWritingMode="LR_TB" lineStyle="SOLID">
   <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" 
distance="20"/>
   <LineStart>
    <pointSequence>
@@ -367,25 +197,8 @@
    </pointSequence>
   </LineStart>
   <LineEnd/>
-  <PolyPolygon>
-   <pointSequence>
-    <point positionX="16518" positionY="2430"/>
-    <point positionX="16513" positionY="5418"/>
-   </pointSequence>
-  </PolyPolygon>
-  <Geometry>
-   <pointSequence>
-    <point positionX="5" positionY="0"/>
-    <point positionX="0" positionY="2988"/>
-   </pointSequence>
-  </Geometry>
-  <Transformation>
-   <Line1 column1="5.000000" column2="0.000000" column3="16513.000000"/>
-   <Line2 column1="0.000000" column2="2988.000000" column3="2430.000000"/>
-   <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
-  </Transformation>
  </XShape>
- <XShape positionX="17137" positionY="2430" sizeX="5" sizeY="2988" 
type="com.sun.star.drawing.LineShape" name="Straight Connector 14" 
fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" 
textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" 
textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" 
textRightDistance="250" textUpperDistance="125" textLowerDistance="125" 
textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" 
textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" 
textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" 
textAnimationStartInside="false" textAnimationStopInside="false" 
textWritingMode="LR_TB" lineStyle="SOLID">
+ <XShape positionX="17137" positionY="2430" sizeX="5" sizeY="2988" 
type="com.sun.star.drawing.ConnectorShape" name="Straight Connector 14" 
fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" 
textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" 
textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" 
textRightDistance="250" textUpperDistance="125" textLowerDistance="125" 
textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" 
textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" 
textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" 
textAnimationStartInside="false" textAnimationStopInside="false" 
textWritingMode="LR_TB" lineStyle="SOLID">
   <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" 
distance="20"/>
   <LineStart>
    <pointSequence>
@@ -402,25 +215,8 @@
    </pointSequence>
   </LineStart>
   <LineEnd/>
-  <PolyPolygon>
-   <pointSequence>
-    <point positionX="17142" positionY="2430"/>
-    <point positionX="17137" positionY="5418"/>
-   </pointSequence>
-  </PolyPolygon>
-  <Geometry>
-   <pointSequence>
-    <point positionX="5" positionY="0"/>
-    <point positionX="0" positionY="2988"/>
-   </pointSequence>
-  </Geometry>
-  <Transformation>
-   <Line1 column1="5.000000" column2="0.000000" column3="17137.000000"/>
-   <Line2 column1="0.000000" column2="2988.000000" column3="2430.000000"/>
-   <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
-  </Transformation>
  </XShape>
- <XShape positionX="17772" positionY="2430" sizeX="5" sizeY="2988" 
type="com.sun.star.drawing.LineShape" name="Straight Connector 15" 
fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" 
textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" 
textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" 
textRightDistance="250" textUpperDistance="125" textLowerDistance="125" 
textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" 
textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" 
textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" 
textAnimationStartInside="false" textAnimationStopInside="false" 
textWritingMode="LR_TB" lineStyle="SOLID">
+ <XShape positionX="17772" positionY="2430" sizeX="5" sizeY="2988" 
type="com.sun.star.drawing.ConnectorShape" name="Straight Connector 15" 
fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" 
textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" 
textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" 
textRightDistance="250" textUpperDistance="125" textLowerDistance="125" 
textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" 
textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" 
textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" 
textAnimationStartInside="false" textAnimationStopInside="false" 
textWritingMode="LR_TB" lineStyle="SOLID">
   <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" 
distance="20"/>
   <LineStart>
    <pointSequence>
@@ -437,25 +233,8 @@
    </pointSequence>
   </LineStart>
   <LineEnd/>
-  <PolyPolygon>
-   <pointSequence>
-    <point positionX="17777" positionY="2430"/>
-    <point positionX="17772" positionY="5418"/>
-   </pointSequence>
-  </PolyPolygon>
-  <Geometry>
-   <pointSequence>
-    <point positionX="5" positionY="0"/>
-    <point positionX="0" positionY="2988"/>
-   </pointSequence>
-  </Geometry>
-  <Transformation>
-   <Line1 column1="5.000000" column2="0.000000" column3="17772.000000"/>
-   <Line2 column1="0.000000" column2="2988.000000" column3="2430.000000"/>
-   <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
-  </Transformation>
  </XShape>
- <XShape positionX="6549" positionY="2438" sizeX="6" sizeY="2990" 
type="com.sun.star.drawing.LineShape" name="Straight Connector 16" 
fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" 
textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" 
textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" 
textRightDistance="250" textUpperDistance="125" textLowerDistance="125" 
textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" 
textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" 
textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" 
textAnimationStartInside="false" textAnimationStopInside="false" 
textWritingMode="LR_TB" lineStyle="SOLID">
+ <XShape positionX="6549" positionY="2438" sizeX="6" sizeY="2990" 
type="com.sun.star.drawing.ConnectorShape" name="Straight Connector 16" 
fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" 
textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" 
textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" 
textRightDistance="250" textUpperDistance="125" textLowerDistance="125" 
textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" 
textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" 
textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" 
textAnimationStartInside="false" textAnimationStopInside="false" 
textWritingMode="LR_TB" lineStyle="SOLID">
   <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" 
distance="20"/>
   <LineStart>
    <pointSequence>
@@ -472,25 +251,8 @@
    </pointSequence>
   </LineStart>
   <LineEnd/>
-  <PolyPolygon>
-   <pointSequence>
-    <point positionX="6555" positionY="2438"/>
-    <point positionX="6549" positionY="5428"/>
-   </pointSequence>
-  </PolyPolygon>
-  <Geometry>
-   <pointSequence>
-    <point positionX="6" positionY="0"/>
-    <point positionX="0" positionY="2990"/>
-   </pointSequence>
-  </Geometry>
-  <Transformation>
-   <Line1 column1="6.000000" column2="0.000000" column3="6549.000000"/>
-   <Line2 column1="0.000000" column2="2990.000000" column3="2438.000000"/>
-   <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
-  </Transformation>
  </XShape>
- <XShape positionX="7193" positionY="2435" sizeX="5" sizeY="2990" 
type="com.sun.star.drawing.LineShape" name="Straight Connector 17" 
fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" 
textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" 
textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" 
textRightDistance="250" textUpperDistance="125" textLowerDistance="125" 
textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" 
textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" 
textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" 
textAnimationStartInside="false" textAnimationStopInside="false" 
textWritingMode="LR_TB" lineStyle="SOLID">
+ <XShape positionX="7193" positionY="2435" sizeX="5" sizeY="2990" 
type="com.sun.star.drawing.ConnectorShape" name="Straight Connector 17" 
fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" 
textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" 
textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" 
textRightDistance="250" textUpperDistance="125" textLowerDistance="125" 
textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" 
textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" 
textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" 
textAnimationStartInside="false" textAnimationStopInside="false" 
textWritingMode="LR_TB" lineStyle="SOLID">
   <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" 
distance="20"/>
   <LineStart>
    <pointSequence>
@@ -507,25 +269,8 @@
    </pointSequence>
   </LineStart>
   <LineEnd/>
-  <PolyPolygon>
-   <pointSequence>
-    <point positionX="7198" positionY="2435"/>
-    <point positionX="7193" positionY="5425"/>
-   </pointSequence>
-  </PolyPolygon>
-  <Geometry>
-   <pointSequence>
-    <point positionX="5" positionY="0"/>
-    <point positionX="0" positionY="2990"/>
-   </pointSequence>
-  </Geometry>
-  <Transformation>
-   <Line1 column1="5.000000" column2="0.000000" column3="7193.000000"/>
-   <Line2 column1="0.000000" column2="2990.000000" column3="2435.000000"/>
-   <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
-  </Transformation>
  </XShape>
- <XShape positionX="7816" positionY="2435" sizeX="5" sizeY="2990" 
type="com.sun.star.drawing.LineShape" name="Straight Connector 18" 
fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" 
textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" 
textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" 
textRightDistance="250" textUpperDistance="125" textLowerDistance="125" 
textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" 
textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" 
textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" 
textAnimationStartInside="false" textAnimationStopInside="false" 
textWritingMode="LR_TB" lineStyle="SOLID">
+ <XShape positionX="7816" positionY="2435" sizeX="5" sizeY="2990" 
type="com.sun.star.drawing.ConnectorShape" name="Straight Connector 18" 
fontHeight="18.000000" fontColor="ffffffff" textAutoGrowHeight="false" 
textAutoGrowWidth="false" textContourFrame="false" textFitToSize="NONE" 
textHorizontalAdjust="CENTER" textVerticalAdjust="TOP" textLeftDistance="250" 
textRightDistance="250" textUpperDistance="125" textLowerDistance="125" 
textMaximumFrameHeight="0" textMaximumFrameWidth="0" textMinimumFrameHeight="0" 
textMinimumFrameWidth="0" textAnimationAmount="0" textAnimationCount="0" 
textAnimationDelay="0" textAnimationDirection="LEFT" textAnimationKind="NONE" 
textAnimationStartInside="false" textAnimationStopInside="false" 
textWritingMode="LR_TB" lineStyle="SOLID">
   <LineDash style="RECT" dots="1" dotLen="20" dashes="1" dashLen="20" 
distance="20"/>
   <LineStart>
    <pointSequence>
@@ -542,22 +287,5 @@
    </pointSequence>
   </LineStart>
   <LineEnd/>
-  <PolyPolygon>
-   <pointSequence>
-    <point positionX="7821" positionY="2435"/>
-    <point positionX="7816" positionY="5425"/>
-   </pointSequence>
-  </PolyPolygon>
-  <Geometry>
-   <pointSequence>
-    <point positionX="5" positionY="0"/>
-    <point positionX="0" positionY="2990"/>
-   </pointSequence>
-  </Geometry>
-  <Transformation>
-   <Line1 column1="5.000000" column2="0.000000" column3="7816.000000"/>
-   <Line2 column1="0.000000" column2="2990.000000" column3="2435.000000"/>
-   <Line3 column1="0.000000" column2="0.000000" column3="1.000000"/>
-  </Transformation>
  </XShape>
 </XShapes>
diff --git a/sd/qa/unit/export-tests-ooxml2.cxx 
b/sd/qa/unit/export-tests-ooxml2.cxx
index e99ac6168dd5..6be1222b5c7d 100644
--- a/sd/qa/unit/export-tests-ooxml2.cxx
+++ b/sd/qa/unit/export-tests-ooxml2.cxx
@@ -1540,10 +1540,10 @@ void SdOOXMLExportTest2::testTdf114845_rotateShape()
     xDocShRef->DoClose();
 
     xmlDocUniquePtr pXmlDocContent = parseExport(tempFile, 
"ppt/slides/slide1.xml");
-    assertXPath(pXmlDocContent, 
"/p:sld/p:cSld/p:spTree/p:sp[5]/p:nvSpPr/p:cNvPr", "name", "Straight Arrow 
Connector 9");
-    assertXPath(pXmlDocContent, 
"/p:sld/p:cSld/p:spTree/p:sp[5]/p:spPr/a:xfrm", "flipV", "1");
-    double dX = getXPath(pXmlDocContent, 
"/p:sld/p:cSld/p:spTree/p:sp[5]/p:spPr/a:xfrm/a:off", "x").toDouble();
-    double dY = getXPath(pXmlDocContent, 
"/p:sld/p:cSld/p:spTree/p:sp[5]/p:spPr/a:xfrm/a:off", "y").toDouble();
+    assertXPath(pXmlDocContent, 
"/p:sld/p:cSld/p:spTree/p:cxnSp[2]/p:nvCxnSpPr/p:cNvPr", "name", "Straight 
Arrow Connector 9");
+    assertXPath(pXmlDocContent, 
"/p:sld/p:cSld/p:spTree/p:cxnSp[2]/p:spPr/a:xfrm", "flipV", "1");
+    double dX = getXPath(pXmlDocContent, 
"/p:sld/p:cSld/p:spTree/p:cxnSp[2]/p:spPr/a:xfrm/a:off", "x").toDouble();
+    double dY = getXPath(pXmlDocContent, 
"/p:sld/p:cSld/p:spTree/p:cxnSp[2]/p:spPr/a:xfrm/a:off", "y").toDouble();
     CPPUNIT_ASSERT_DOUBLES_EQUAL( 4059000.0, dX, dX * .001);
     CPPUNIT_ASSERT_DOUBLES_EQUAL( 3287520.0, dY, dY * .001);
 }
diff --git a/sd/qa/unit/import-tests.cxx b/sd/qa/unit/import-tests.cxx
index 215d668b2f3f..100c9e784875 100644
--- a/sd/qa/unit/import-tests.cxx
+++ b/sd/qa/unit/import-tests.cxx
@@ -52,6 +52,7 @@
 #include <com/sun/star/frame/Desktop.hpp>
 #include <com/sun/star/presentation/XCustomPresentationSupplier.hpp>
 #include <com/sun/star/drawing/EnhancedCustomShapeParameterPair.hpp>
+#include <com/sun/star/drawing/ConnectorType.hpp>
 
 #include <stlpool.hxx>
 #include <comphelper/sequenceashashmap.hxx>
@@ -80,6 +81,7 @@ public:
     virtual void setUp() override;
 
     void testDocumentLayout();
+    void testTdf89449();
     void testTdf147459();
     void testTdf146223();
     void testTdf144918();
@@ -147,6 +149,7 @@ public:
     CPPUNIT_TEST_SUITE(SdImportTest);
 
     CPPUNIT_TEST(testDocumentLayout);
+    CPPUNIT_TEST(testTdf89449);
     CPPUNIT_TEST(testTdf147459);
     CPPUNIT_TEST(testTdf146223);
     CPPUNIT_TEST(testTdf144918);
@@ -292,6 +295,42 @@ void SdImportTest::testDocumentLayout()
     }
 }
 
+void SdImportTest::testTdf89449()
+{
+    sd::DrawDocShellRef xDocShRef
+        = 
loadURL(m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/tdf89449.pptx"), 
PPTX);
+
+    sal_Int32 nStartGlueId;
+    sal_Int32 nEndGlueId;
+    css::drawing::ConnectorType aConnectorType;
+
+    uno::Reference<beans::XPropertySet> xCurvedConnector(getShapeFromPage(3, 
0, xDocShRef));
+    xCurvedConnector->getPropertyValue("EdgeKind") >>= aConnectorType;
+    CPPUNIT_ASSERT_EQUAL(drawing::ConnectorType::ConnectorType_CURVE, 
aConnectorType);
+    nStartGlueId = 
xCurvedConnector->getPropertyValue("StartGluePointIndex").get<sal_Int32>();
+    CPPUNIT_ASSERT_EQUAL(sal_Int32(1), nStartGlueId);
+    nEndGlueId = 
xCurvedConnector->getPropertyValue("EndGluePointIndex").get<sal_Int32>();
+    CPPUNIT_ASSERT_EQUAL(sal_Int32(0), nEndGlueId);
+
+    uno::Reference<beans::XPropertySet> xStraightConnector(getShapeFromPage(4, 
0, xDocShRef));
+    xStraightConnector->getPropertyValue("EdgeKind") >>= aConnectorType;
+    CPPUNIT_ASSERT_EQUAL(drawing::ConnectorType::ConnectorType_LINE, 
aConnectorType);
+    nStartGlueId = 
xStraightConnector->getPropertyValue("StartGluePointIndex").get<sal_Int32>();
+    CPPUNIT_ASSERT_EQUAL(sal_Int32(1), nStartGlueId);
+    nEndGlueId = 
xStraightConnector->getPropertyValue("EndGluePointIndex").get<sal_Int32>();
+    CPPUNIT_ASSERT_EQUAL(sal_Int32(3), nEndGlueId);
+
+    uno::Reference<beans::XPropertySet> xStandardConnector(getShapeFromPage(5, 
0, xDocShRef));
+    xStandardConnector->getPropertyValue("EdgeKind") >>= aConnectorType;
+    CPPUNIT_ASSERT_EQUAL(drawing::ConnectorType::ConnectorType_STANDARD, 
aConnectorType);
+    nStartGlueId = 
xStandardConnector->getPropertyValue("StartGluePointIndex").get<sal_Int32>();
+    CPPUNIT_ASSERT_EQUAL(sal_Int32(3), nStartGlueId);
+    nEndGlueId = 
xStandardConnector->getPropertyValue("EndGluePointIndex").get<sal_Int32>();
+    CPPUNIT_ASSERT_EQUAL(sal_Int32(2), nEndGlueId);
+
+    xDocShRef->DoClose();
+}
+
 void SdImportTest::testTdf147459()
 {
     sd::DrawDocShellRef xDocShRef

Reply via email to