diff options
author | Markus Mohrhard <markus.mohrhard@collabora.co.uk> | 2014-03-08 13:01:53 +0100 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2014-03-08 14:35:11 +0100 |
commit | b1fbb1513a4d183e3194965c1a60feca56dc90bb (patch) | |
tree | d3194969f8d11423ca168ebb24d318885ec20be0 | |
parent | 1ca73256f99fcc60330463eb7753c20df389e551 (diff) |
fix OOXML validation error, related fdo#42698
Missing percentage sign in type. The values of XML_d and XML_sp seem
insane.
Change-Id: If6762ed70d3536c0eeea3ee687991dad60f5e71e
-rw-r--r-- | include/oox/export/utils.hxx | 6 | ||||
-rw-r--r-- | oox/source/export/drawingml.cxx | 9 |
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 ); } |