summaryrefslogtreecommitdiff
path: root/drawinglayer
diff options
context:
space:
mode:
authorBartosz Kosiorek <gang65@poczta.onet.pl>2021-06-02 16:47:57 +0200
committerBartosz Kosiorek <gang65@poczta.onet.pl>2021-06-02 19:39:55 +0200
commit3afac9467936fb3a5ae314878686c0f66ee7784f (patch)
treecb9ae6408346d5c60523aee81a6a4e6d04c664a7 /drawinglayer
parente3c2da6d4ba774d7eb1463103969b21fbf4243c6 (diff)
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 <gang65@poczta.onet.pl>
Diffstat (limited to 'drawinglayer')
-rw-r--r--drawinglayer/source/tools/primitive2dxmldump.cxx56
1 files changed, 43 insertions, 13 deletions
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<const PolyPolygonStrokePrimitive2D&>(*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()