From 892e5f298f2d0bb5ed5610dba96c2131870a6b95 Mon Sep 17 00:00:00 2001 From: Roman Telezhynskyi Date: Fri, 24 Feb 2017 19:48:54 +0200 Subject: [PATCH] Fix bug. Piece must increase reference count for each pin. --HG-- branch : feature --- src/libs/vtools/tools/vtoolseamallowance.cpp | 10 ++++++++++ src/libs/vtools/tools/vtoolseamallowance.h | 1 + 2 files changed, 11 insertions(+) diff --git a/src/libs/vtools/tools/vtoolseamallowance.cpp b/src/libs/vtools/tools/vtoolseamallowance.cpp index e9f6e4375..30d00a394 100644 --- a/src/libs/vtools/tools/vtoolseamallowance.cpp +++ b/src/libs/vtools/tools/vtoolseamallowance.cpp @@ -1075,6 +1075,7 @@ VToolSeamAllowance::VToolSeamAllowance(VAbstractPattern *doc, VContainer *data, InitNodes(detail, scene); InitCSAPaths(detail); InitInternalPaths(detail); + InitPins(detail); this->setFlag(QGraphicsItem::ItemIsMovable, true); this->setFlag(QGraphicsItem::ItemIsSelectable, true); RefreshGeometry(); @@ -1203,6 +1204,15 @@ void VToolSeamAllowance::InitInternalPaths(const VPiece &detail) } } +//--------------------------------------------------------------------------------------------------------------------- +void VToolSeamAllowance::InitPins(const VPiece &detail) +{ + for (int i = 0; i < detail.GetPins().size(); ++i) + { + doc->IncrementReferens(detail.GetPins().at(i)); + } +} + //--------------------------------------------------------------------------------------------------------------------- void VToolSeamAllowance::DeleteTool(bool ask) { diff --git a/src/libs/vtools/tools/vtoolseamallowance.h b/src/libs/vtools/tools/vtoolseamallowance.h index b1dc83a42..d0dec269a 100644 --- a/src/libs/vtools/tools/vtoolseamallowance.h +++ b/src/libs/vtools/tools/vtoolseamallowance.h @@ -155,6 +155,7 @@ private: void InitNodes(const VPiece &detail, VMainGraphicsScene *scene); void InitCSAPaths(const VPiece &detail); void InitInternalPaths(const VPiece &detail); + void InitPins(const VPiece &detail); template Tool* InitTool(VMainGraphicsScene *scene, quint32 toolId);