summaryrefslogtreecommitdiff
path: root/xmloff
diff options
context:
space:
mode:
authorRadek Doulik <rodo@novell.com>2012-07-19 16:06:52 +0200
committerRadek Doulik <rodo@novell.com>2012-10-15 15:26:30 +0200
commitc1160636c5af766287aa2ada67ad2727fee30c4b (patch)
tree4afe62df88883cff2f9475f66c2d741cc6399c81 /xmloff
parent92ccb17c37a73358c6e7f33629e6df662687209c (diff)
odf: export old path without unsupported commands in draw namespace as well
- to preserve at least some data for older versions of Libre Office Change-Id: I2a33706c2a2344e45b57a00469a7387072f8602b
Diffstat (limited to 'xmloff')
-rw-r--r--xmloff/source/draw/shapeexport4.cxx22
1 files changed, 16 insertions, 6 deletions
diff --git a/xmloff/source/draw/shapeexport4.cxx b/xmloff/source/draw/shapeexport4.cxx
index 43e75f97e72c..28bfd296bf46 100644
--- a/xmloff/source/draw/shapeexport4.cxx
+++ b/xmloff/source/draw/shapeexport4.cxx
@@ -323,13 +323,14 @@ void ImpExportHandles( SvXMLExport& rExport, const uno::Sequence< beans::Propert
}
void ImpExportEnhancedPath( SvXMLExport& rExport,
- const uno::Sequence< com::sun::star::drawing::EnhancedCustomShapeParameterPair >& rCoordinates,
- const uno::Sequence< com::sun::star::drawing::EnhancedCustomShapeSegment >& rSegments )
+ const uno::Sequence< com::sun::star::drawing::EnhancedCustomShapeParameterPair >& rCoordinates,
+ const uno::Sequence< com::sun::star::drawing::EnhancedCustomShapeSegment >& rSegments,
+ bool bExtended = false )
{
rtl::OUString aStr;
rtl::OUStringBuffer aStrBuffer;
- sal_uInt16 aNamespace = XML_NAMESPACE_DRAW;
+ bool bNeedExtended = false;
sal_Int32 i, j, k, l;
@@ -415,8 +416,15 @@ void ImpExportEnhancedPath( SvXMLExport& rExport,
case com::sun::star::drawing::EnhancedCustomShapeSegmentCommand::QUADRATICCURVETO :
aStrBuffer.append( (sal_Unicode)'Q' ); nParameter = 2; break;
case com::sun::star::drawing::EnhancedCustomShapeSegmentCommand::ARCANGLETO :
- aStrBuffer.append( (sal_Unicode)'G' ); nParameter = 2; aNamespace = XML_NAMESPACE_DRAW_EXT; break;
-
+ if ( bExtended ) {
+ aStrBuffer.append( (sal_Unicode)'G' );
+ nParameter = 2;
+ } else {
+ aStrBuffer.setLength( aStrBuffer.getLength() - 1);
+ bNeedExtended = true;
+ i += 2;
+ }
+ break;
default : // ups, seems to be something wrong
{
aSegment.Count = 1;
@@ -445,7 +453,9 @@ void ImpExportEnhancedPath( SvXMLExport& rExport,
}
}
aStr = aStrBuffer.makeStringAndClear();
- rExport.AddAttribute( aNamespace, XML_ENHANCED_PATH, aStr );
+ rExport.AddAttribute( bExtended ? XML_NAMESPACE_DRAW_EXT : XML_NAMESPACE_DRAW, XML_ENHANCED_PATH, aStr );
+ if ( !bExtended && bNeedExtended )
+ ImpExportEnhancedPath( rExport, rCoordinates, rSegments, true );
}
void ImpExportEnhancedGeometry( SvXMLExport& rExport, const uno::Reference< beans::XPropertySet >& xPropSet )