summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/oox/export/utils.hxx6
-rw-r--r--oox/source/export/drawingml.cxx9
2 files changed, 11 insertions, 4 deletions
diff --git a/include/oox/export/utils.hxx b/include/oox/export/utils.hxx
index f82598974ad8..06ddfe3391e5 100644
--- a/include/oox/export/utils.hxx
+++ b/include/oox/export/utils.hxx
@@ -48,6 +48,12 @@ static inline sal_Int64 TwipsToEMU( sal_Int32 nTwips )
return sal_Int64( nTwips ) * 635;
}
+template <typename T>
+OString writePercentage(T number)
+{
+ return OString::number(number) + "%";
+}
+
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx
index cf25f2a47661..5f869eef95eb 100644
--- a/oox/source/export/drawingml.cxx
+++ b/oox/source/export/drawingml.cxx
@@ -620,17 +620,18 @@ void DrawingML::WriteOutline( Reference< XPropertySet > rXPropSet )
if( bDashSet && aStyleLineStyle != drawing::LineStyle_DASH ) {
// line style is a dash and it was not set by the shape style
+ // TODO: the XML_d and XML_sp values seem insane
mpFS->startElementNS( XML_a, XML_custDash, FSEND );
int i;
for( i = 0; i < aLineDash.Dots; i ++ )
mpFS->singleElementNS( XML_a, XML_ds,
- XML_d, aLineDash.DotLen ? I64S( aLineDash.DotLen*1000 ) : "100000",
- XML_sp, I64S( aLineDash.Distance*1000 ),
+ XML_d, aLineDash.DotLen ? writePercentage( aLineDash.DotLen*1000 ) : "100000%",
+ XML_sp, writePercentage( aLineDash.Distance*1000 ),
FSEND );
for( i = 0; i < aLineDash.Dashes; i ++ )
mpFS->singleElementNS( XML_a, XML_ds,
- XML_d, aLineDash.DashLen ? I64S( aLineDash.DashLen*1000 ) : "100000",
- XML_sp, I64S( aLineDash.Distance*1000 ),
+ XML_d, aLineDash.DashLen ? writePercentage( aLineDash.DashLen*1000 ) : "100000%",
+ XML_sp, writePercentage( aLineDash.Distance*1000 ),
FSEND );
mpFS->endElementNS( XML_a, XML_custDash );
}