diff --git a/src/core/Animators/outlinesettingsanimator.cpp b/src/core/Animators/outlinesettingsanimator.cpp index af98e4b53..998327c4f 100644 --- a/src/core/Animators/outlinesettingsanimator.cpp +++ b/src/core/Animators/outlinesettingsanimator.cpp @@ -195,11 +195,43 @@ void OutlineSettingsAnimator::duplicateStrokeSettingsNotAnim( void OutlineSettingsAnimator::saveSVG(SvgExporter& exp, QDomElement& parent, const FrameRange& visRange, - const bool asFill) const { + const bool asFill) const +{ PaintSettingsAnimator::saveSVG(exp, parent, visRange, asFill ? "fill" : "stroke"); - if(asFill) return; + if (asFill) { return; } + mLineWidth->saveQrealSVG(exp, parent, visRange, "stroke-width"); + saveCapsSVG(parent); +} + +void OutlineSettingsAnimator::saveCapsSVG(QDomElement &parent) const +{ + QString linecap; + switch(mCapStyle) { + case SkPaint::kRound_Cap: + linecap = "round"; + break; + case SkPaint::kSquare_Cap: + linecap = "square"; + break; + default: + linecap = "butt"; + } + parent.setAttribute("stroke-linecap", linecap); + + QString linejoin; + switch(mJoinStyle) { + case SkPaint::kRound_Join: + linejoin = "round"; + break; + case SkPaint::kBevel_Join: + linejoin = "bevel"; + break; + default: + linejoin = "miter"; + } + parent.setAttribute("stroke-linejoin", linejoin); } QDomElement OutlineSettingsAnimator::writeBrushPaint(const XevExporter& exp) const { diff --git a/src/core/Animators/outlinesettingsanimator.h b/src/core/Animators/outlinesettingsanimator.h index 26a220cfc..bf244f6f5 100644 --- a/src/core/Animators/outlinesettingsanimator.h +++ b/src/core/Animators/outlinesettingsanimator.h @@ -113,6 +113,8 @@ class CORE_EXPORT OutlineSettingsAnimator : public PaintSettingsAnimator { QDomElement& parent, const FrameRange& visRange, const bool asFill = false) const; + void saveCapsSVG(QDomElement& parent) const; + protected: QDomElement writeBrushPaint(const XevExporter& exp) const; void readBrushPaint(const QDomElement& ele,