diff --git a/src/app/valentina/xml/vpattern.cpp b/src/app/valentina/xml/vpattern.cpp
index 595fbae13..a7ddee41c 100644
--- a/src/app/valentina/xml/vpattern.cpp
+++ b/src/app/valentina/xml/vpattern.cpp
@@ -624,6 +624,7 @@ void VPattern::ParseDetailElement(const QDomElement &domElement, const Document
detail.SetForbidFlipping(GetParametrBool(domElement, VToolSeamAllowance::AttrForbidFlipping,
QString().setNum(qApp->ValentinaSettings()->GetForbidWorkpieceFlipping())));
detail.SetInLayout(GetParametrBool(domElement, AttrInLayout, trueStr));
+ detail.SetUnited(GetParametrBool(domElement, VToolSeamAllowance::AttrUnited, falseStr));
const QStringList tags = QStringList() << VToolSeamAllowance::TagNodes
<< TagData
diff --git a/src/libs/ifc/schema/pattern/v0.4.0.xsd b/src/libs/ifc/schema/pattern/v0.4.0.xsd
index 0562a84f1..fb24ee3e9 100644
--- a/src/libs/ifc/schema/pattern/v0.4.0.xsd
+++ b/src/libs/ifc/schema/pattern/v0.4.0.xsd
@@ -420,6 +420,7 @@
+
diff --git a/src/libs/vpatterndb/vpiece.cpp b/src/libs/vpatterndb/vpiece.cpp
index 1d0fafc0d..b876ff8c6 100644
--- a/src/libs/vpatterndb/vpiece.cpp
+++ b/src/libs/vpatterndb/vpiece.cpp
@@ -219,6 +219,18 @@ void VPiece::SetInLayout(bool inLayout)
d->m_inLayout = inLayout;
}
+//---------------------------------------------------------------------------------------------------------------------
+bool VPiece::IsUnited() const
+{
+ return d->m_united;
+}
+
+//---------------------------------------------------------------------------------------------------------------------
+void VPiece::SetUnited(bool united)
+{
+ d->m_united = united;
+}
+
//---------------------------------------------------------------------------------------------------------------------
/**
* @brief Missing find missing nodes in detail. When we deleted object in detail and return this detail need
diff --git a/src/libs/vpatterndb/vpiece.h b/src/libs/vpatterndb/vpiece.h
index 243332d8d..1c17e3f2d 100644
--- a/src/libs/vpatterndb/vpiece.h
+++ b/src/libs/vpatterndb/vpiece.h
@@ -72,6 +72,9 @@ public:
bool IsInLayout() const;
void SetInLayout(bool inLayout);
+ bool IsUnited() const;
+ void SetUnited(bool united);
+
QVector Missing(const VPiece &det) const;
int indexOfNode(const quint32 &id) const;
diff --git a/src/libs/vpatterndb/vpiece_p.h b/src/libs/vpatterndb/vpiece_p.h
index ebb7acd6c..0511d4ae5 100644
--- a/src/libs/vpatterndb/vpiece_p.h
+++ b/src/libs/vpatterndb/vpiece_p.h
@@ -46,7 +46,8 @@ public:
: m_path(),
m_mx(0),
m_my(0),
- m_inLayout(true)
+ m_inLayout(true),
+ m_united(false)
{}
VPieceData(const VPieceData &detail)
@@ -54,7 +55,8 @@ public:
m_path(detail.m_path),
m_mx(detail.m_mx),
m_my(detail.m_my),
- m_inLayout(detail.m_inLayout)
+ m_inLayout(detail.m_inLayout),
+ m_united(detail.m_united)
{}
~VPieceData();
@@ -66,6 +68,7 @@ public:
qreal m_my;
bool m_inLayout;
+ bool m_united;
private:
VPieceData &operator=(const VPieceData &) Q_DECL_EQ_DELETE;
diff --git a/src/libs/vtools/tools/vtoolseamallowance.cpp b/src/libs/vtools/tools/vtoolseamallowance.cpp
index cfdc2892d..aa6c46758 100644
--- a/src/libs/vtools/tools/vtoolseamallowance.cpp
+++ b/src/libs/vtools/tools/vtoolseamallowance.cpp
@@ -67,6 +67,7 @@ const QString VToolSeamAllowance::AttrSeamAllowance = QStringLiteral("seamAllow
const QString VToolSeamAllowance::AttrWidth = QStringLiteral("width");
const QString VToolSeamAllowance::AttrSABefore = QStringLiteral("before");
const QString VToolSeamAllowance::AttrSAAfter = QStringLiteral("after");
+const QString VToolSeamAllowance::AttrUnited = QStringLiteral("united");
const QString VToolSeamAllowance::NodeArc = QStringLiteral("NodeArc");
const QString VToolSeamAllowance::NodePoint = QStringLiteral("NodePoint");
@@ -278,6 +279,7 @@ void VToolSeamAllowance::AddAttributes(VAbstractPattern *doc, QDomElement &domEl
doc->SetAttribute(domElement, AttrForbidFlipping, piece.IsForbidFlipping());
doc->SetAttribute(domElement, AttrSeamAllowance, piece.IsSeamAllowance());
doc->SetAttribute(domElement, AttrWidth, piece.GetSAWidth());
+ doc->SetAttribute(domElement, AttrUnited, piece.IsUnited());
}
//---------------------------------------------------------------------------------------------------------------------
diff --git a/src/libs/vtools/tools/vtoolseamallowance.h b/src/libs/vtools/tools/vtoolseamallowance.h
index 8b1a76764..04605a66e 100644
--- a/src/libs/vtools/tools/vtoolseamallowance.h
+++ b/src/libs/vtools/tools/vtoolseamallowance.h
@@ -64,6 +64,7 @@ public:
static const QString AttrWidth;
static const QString AttrSABefore;
static const QString AttrSAAfter;
+ static const QString AttrUnited;
static const QString NodeArc;
static const QString NodePoint;