summaryrefslogtreecommitdiff
path: root/xmloff
diff options
context:
space:
mode:
authorJan Holesovsky <kendy@suse.cz>2010-11-16 09:00:39 +0100
committerJan Holesovsky <kendy@suse.cz>2010-11-16 09:00:39 +0100
commita2f9c7dfc33f98a321abb00257f3194c737c4c12 (patch)
tree2a54fa23d55c2e3c0d5237b5a8a5ed913854970d /xmloff
parentee7f1356c717a44463169f4a469f78eb1e38ed6b (diff)
parent87423806b51ed7df5d1575bcb4007e428d896219 (diff)
Merge commit 'ooo/OOO330_m15' into libreoffice-3-3
Diffstat (limited to 'xmloff')
-rw-r--r--xmloff/source/draw/ximpshap.cxx30
1 files changed, 29 insertions, 1 deletions
diff --git a/xmloff/source/draw/ximpshap.cxx b/xmloff/source/draw/ximpshap.cxx
index 60a06dc132..de1571520c 100644
--- a/xmloff/source/draw/ximpshap.cxx
+++ b/xmloff/source/draw/ximpshap.cxx
@@ -1932,7 +1932,35 @@ void SdXMLConnectorShapeContext::StartElement(const uno::Reference< xml::sax::XA
SetLayer();
if ( maPath.hasValue() )
- xProps->setPropertyValue( OUString(RTL_CONSTASCII_USTRINGPARAM("PolyPolygonBezier") ), maPath );
+ {
+ // --> OD #i115492#
+ // Ignore svg:d attribute for text documents created by OpenOffice.org
+ // versions before OOo 3.3, because these OOo versions are storing
+ // svg:d values not using the correct unit.
+ bool bApplySVGD( true );
+ if ( uno::Reference< text::XTextDocument >(GetImport().GetModel(), uno::UNO_QUERY).is() )
+ {
+ sal_Int32 nUPD( 0 );
+ sal_Int32 nBuild( 0 );
+ const bool bBuildIdFound = GetImport().getBuildIds( nUPD, nBuild );
+ if ( GetImport().IsTextDocInOOoFileFormat() ||
+ ( bBuildIdFound &&
+ ( ( nUPD == 641 ) || ( nUPD == 645 ) || // prior OOo 2.0
+ ( nUPD == 680 ) || // OOo 2.x
+ ( nUPD == 300 ) || // OOo 3.0 - OOo 3.0.1
+ ( nUPD == 310 ) || // OOo 3.1 - OOo 3.1.1
+ ( nUPD == 320 ) ) ) ) // OOo 3.2 - OOo 3.2.1
+ {
+ bApplySVGD = false;
+ }
+ }
+
+ if ( bApplySVGD )
+ {
+ xProps->setPropertyValue( OUString(RTL_CONSTASCII_USTRINGPARAM("PolyPolygonBezier") ), maPath );
+ }
+ // <--
+ }
SdXMLShapeContext::StartElement(xAttrList);
}