From 3afac9467936fb3a5ae314878686c0f66ee7784f Mon Sep 17 00:00:00 2001 From: Bartosz Kosiorek Date: Wed, 2 Jun 2021 16:47:57 +0200 Subject: fix: extend the primitive dump, with information about line cap and joint Change-Id: I5c67d360236ec67c41bc45a9018f0ff0d0ec1d3d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116611 Tested-by: Jenkins Reviewed-by: Bartosz Kosiorek --- drawinglayer/source/tools/primitive2dxmldump.cxx | 56 ++++++++++++++++++------ 1 file changed, 43 insertions(+), 13 deletions(-) (limited to 'drawinglayer') diff --git a/drawinglayer/source/tools/primitive2dxmldump.cxx b/drawinglayer/source/tools/primitive2dxmldump.cxx index ade8cfaed89b..24c390c7e0f3 100644 --- a/drawinglayer/source/tools/primitive2dxmldump.cxx +++ b/drawinglayer/source/tools/primitive2dxmldump.cxx @@ -84,6 +84,47 @@ void writePolyPolygon(::tools::XmlWriter& rWriter, const basegfx::B2DPolyPolygon rWriter.endElement(); } +void writeLineAttribute(::tools::XmlWriter& rWriter, const drawinglayer::attribute::LineAttribute& rLineAttribute) +{ + rWriter.startElement("line"); + rWriter.attribute("color", convertColorToString(rLineAttribute.getColor())); + rWriter.attribute("width", rLineAttribute.getWidth()); + switch( rLineAttribute.getLineJoin() ) + { + case basegfx::B2DLineJoin::NONE: + rWriter.attribute("linejoin", "NONE"); + break; + case basegfx::B2DLineJoin::Bevel: + rWriter.attribute("linejoin", "Bevel"); + break; + case basegfx::B2DLineJoin::Miter: + rWriter.attribute("linejoin", "Miter"); + break; + case basegfx::B2DLineJoin::Round: + rWriter.attribute("linejoin", "Round"); + break; + default: + rWriter.attribute("linejoin", "Unknown"); + break; + } + switch( rLineAttribute.getLineCap() ) + { + case css::drawing::LineCap::LineCap_BUTT: + rWriter.attribute("linecap", "BUTT"); + break; + case css::drawing::LineCap::LineCap_ROUND: + rWriter.attribute("linecap", "ROUND"); + break; + case css::drawing::LineCap::LineCap_SQUARE: + rWriter.attribute("linecap", "SQUARE"); + break; + default: + rWriter.attribute("linecap", "Unknown"); + break; + } + rWriter.endElement(); +} + } // end anonymous namespace Primitive2dXmlDump::Primitive2dXmlDump() : @@ -235,12 +276,7 @@ void Primitive2dXmlDump::decomposeAndWrite( rWriter.content(basegfx::utils::exportToSvgPoints(rPolygonStrokePrimitive2D.getB2DPolygon())); rWriter.endElement(); - rWriter.startElement("line"); - const drawinglayer::attribute::LineAttribute& aLineAttribute = rPolygonStrokePrimitive2D.getLineAttribute(); - rWriter.attribute("color", convertColorToString(aLineAttribute.getColor())); - rWriter.attribute("width", aLineAttribute.getWidth()); - - rWriter.endElement(); + writeLineAttribute(rWriter, rPolygonStrokePrimitive2D.getLineAttribute()); rWriter.startElement("stroke"); const drawinglayer::attribute::StrokeAttribute& aStrokeAttribute = rPolygonStrokePrimitive2D.getStrokeAttribute(); @@ -256,13 +292,7 @@ void Primitive2dXmlDump::decomposeAndWrite( const PolyPolygonStrokePrimitive2D& rPolyPolygonStrokePrimitive2D = dynamic_cast(*pBasePrimitive); rWriter.startElement("polypolygonstroke"); - rWriter.startElement("line"); - const drawinglayer::attribute::LineAttribute& aLineAttribute = rPolyPolygonStrokePrimitive2D.getLineAttribute(); - rWriter.attribute("color", convertColorToString(aLineAttribute.getColor())); - rWriter.attribute("width", aLineAttribute.getWidth()); - //rWriter.attribute("linejoin", aLineAttribute.getLineJoin()); - //rWriter.attribute("linecap", aLineAttribute.getLineCap()); - rWriter.endElement(); + writeLineAttribute(rWriter, rPolyPolygonStrokePrimitive2D.getLineAttribute()); //getStrokeAttribute() -- cgit