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 <nemeth@numbertext.org>
Reviewed-by: László Németh <nemeth@numbertext.org>
This commit is contained in:
Tibor Nagy
2022-03-29 16:12:45 +02:00
committed by László Németh
parent bc601af632
commit cbf66ec3e6
20 changed files with 288 additions and 542 deletions
@@ -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;
};
+11
View File
@@ -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;
+4
View File
@@ -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;
};
}
@@ -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; }
@@ -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 );
+74 -10
View File
@@ -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: */
+2 -34
View File
@@ -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",
+32 -5
View File
@@ -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)
{
+2 -1
View File
@@ -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" ) );
@@ -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>();
+2 -1
View File
@@ -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);
}
+5 -1
View File
@@ -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
+70
View File
@@ -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: */
+4 -3
View File
@@ -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
{
+2 -1
View File
@@ -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 ):
{
Binary file not shown.
+4 -184
View File
@@ -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>
+16 -288
View File
@@ -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>
+4 -4
View File
@@ -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);
}
+39
View File
@@ -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