diff --git a/src/app/valentina/xml/vpattern.cpp b/src/app/valentina/xml/vpattern.cpp index 562f4519d..4557c6761 100644 --- a/src/app/valentina/xml/vpattern.cpp +++ b/src/app/valentina/xml/vpattern.cpp @@ -577,7 +577,8 @@ VPieceNode VPattern::ParseSANode(const QDomElement &domElement) const const QStringList types = QStringList() << VAbstractPattern::NodePoint << VAbstractPattern::NodeArc << VAbstractPattern::NodeSpline - << VAbstractPattern::NodeSplinePath; + << VAbstractPattern::NodeSplinePath + << VAbstractPattern::NodeElArc; switch (types.indexOf(t)) { @@ -593,6 +594,9 @@ VPieceNode VPattern::ParseSANode(const QDomElement &domElement) const case 3: // VAbstractPattern::NodeSplinePath tool = Tool::NodeSplinePath; break; + case 4: // NodeElArc + tool = Tool::NodeElArc; + break; default: VException e(tr("Wrong tag name '%1'.").arg(t)); throw e; diff --git a/src/libs/vtools/tools/vtoolseamallowance.cpp b/src/libs/vtools/tools/vtoolseamallowance.cpp index b3d052731..f3a16736e 100644 --- a/src/libs/vtools/tools/vtoolseamallowance.cpp +++ b/src/libs/vtools/tools/vtoolseamallowance.cpp @@ -31,11 +31,13 @@ #include "../vpatterndb/vpiecenode.h" #include "../vpatterndb/vpiecepath.h" #include "nodeDetails/vnodearc.h" +#include "nodeDetails/vnodeellipticalarc.h" #include "nodeDetails/vnodepoint.h" #include "nodeDetails/vnodespline.h" #include "nodeDetails/vnodesplinepath.h" #include "nodeDetails/vtoolpiecepath.h" #include "../vgeometry/varc.h" +#include "../vgeometry/vellipticalarc.h" #include "../vgeometry/vcubicbezier.h" #include "../vgeometry/vcubicbezierpath.h" #include "../vgeometry/vpointf.h" @@ -106,6 +108,12 @@ VToolSeamAllowance *VToolSeamAllowance::Create(DialogTool *dialog, VMainGraphics VNodeArc::Create(doc, data, id, nodeD.GetId(), Document::FullParse, Source::FromGui); } break; + case (Tool::NodeElArc): + { + id = CreateNode(data, nodeD.GetId()); + VNodeEllipticalArc::Create(doc, data, id, nodeD.GetId(), Document::FullParse, Source::FromGui); + } + break; case (Tool::NodeSpline): { const auto obj = data->GetGObject(nodeD.GetId()); @@ -736,6 +744,7 @@ void VToolSeamAllowance::InitNodes(const VPiece &detail, VMainGraphicsScene *sce break; } case (Tool::NodeArc): + case (Tool::NodeElArc): case (Tool::NodeSpline): case (Tool::NodeSplinePath): doc->IncrementReferens(detail.GetPath().at(i).GetId());