diff --git a/src/libs/vlayout/vlayoutpiece.cpp b/src/libs/vlayout/vlayoutpiece.cpp index b577673ee..2c4c2ad23 100644 --- a/src/libs/vlayout/vlayoutpiece.cpp +++ b/src/libs/vlayout/vlayoutpiece.cpp @@ -72,7 +72,10 @@ QVector ConvertInternalPaths(const VPiece &piece, const VConta const VPiecePath path = pattern->GetPiecePath(id); if (path.GetType() == PiecePathType::InternalPath && path.IsVisible(pattern->DataVariables())) { - paths.append(VLayoutPiecePath(path.PathPoints(pattern, cuttingPath), path.IsCutPath(), path.GetPenType())); + VLayoutPiecePath convertedPath = VLayoutPiecePath(path.PathPoints(pattern, cuttingPath)); + convertedPath.SetCutPath(path.IsCutPath()); + convertedPath.SetPenStyle(path.GetPenType()); + paths.append(convertedPath); } } return paths; diff --git a/src/libs/vlayout/vlayoutpiecepath.cpp b/src/libs/vlayout/vlayoutpiecepath.cpp index 8425ba00d..4b3bfbf9d 100644 --- a/src/libs/vlayout/vlayoutpiecepath.cpp +++ b/src/libs/vlayout/vlayoutpiecepath.cpp @@ -39,8 +39,8 @@ VLayoutPiecePath::VLayoutPiecePath() } //--------------------------------------------------------------------------------------------------------------------- -VLayoutPiecePath::VLayoutPiecePath(const QVector &points, bool cut, Qt::PenStyle penStyle) - : d(new VLayoutPiecePathData(points, cut, penStyle)) +VLayoutPiecePath::VLayoutPiecePath(const QVector &points) + : d(new VLayoutPiecePathData(points)) { } diff --git a/src/libs/vlayout/vlayoutpiecepath.h b/src/libs/vlayout/vlayoutpiecepath.h index 47e37a7e9..1e38e3847 100644 --- a/src/libs/vlayout/vlayoutpiecepath.h +++ b/src/libs/vlayout/vlayoutpiecepath.h @@ -31,6 +31,7 @@ #include #include +#include class VLayoutPiecePathData; class QPainterPath; @@ -39,7 +40,7 @@ class VLayoutPiecePath { public: VLayoutPiecePath(); - VLayoutPiecePath(const QVector &points, bool cut, Qt::PenStyle penStyle = Qt::SolidLine); + explicit VLayoutPiecePath(const QVector &points); VLayoutPiecePath(const VLayoutPiecePath &path); virtual ~VLayoutPiecePath(); @@ -67,6 +68,7 @@ private: QSharedDataPointer d; }; +Q_DECLARE_METATYPE(VLayoutPiecePath) Q_DECLARE_TYPEINFO(VLayoutPiecePath, Q_MOVABLE_TYPE); #endif // VLAYOUTPIECEPATH_H diff --git a/src/libs/vlayout/vlayoutpiecepath_p.h b/src/libs/vlayout/vlayoutpiecepath_p.h index c89b05676..eb9c74c65 100644 --- a/src/libs/vlayout/vlayoutpiecepath_p.h +++ b/src/libs/vlayout/vlayoutpiecepath_p.h @@ -43,15 +43,10 @@ class VLayoutPiecePathData : public QSharedData { public: VLayoutPiecePathData() - : m_points(), - m_penStyle(Qt::SolidLine), - m_cut(false) {} - VLayoutPiecePathData(const QVector points, bool cut, Qt::PenStyle penStyle) - : m_points(points), - m_penStyle(penStyle), - m_cut(cut) + VLayoutPiecePathData(const QVector &points) + : m_points(points) {} VLayoutPiecePathData(const VLayoutPiecePathData &path) @@ -64,12 +59,12 @@ public: ~VLayoutPiecePathData() Q_DECL_EQ_DEFAULT; /** @brief m_points list of path points. */ - QVector m_points; + QVector m_points{}; /** @brief m_penStyle path pen style. */ - Qt::PenStyle m_penStyle; + Qt::PenStyle m_penStyle{Qt::SolidLine}; - bool m_cut; + bool m_cut{false}; private: VLayoutPiecePathData &operator=(const VLayoutPiecePathData &) Q_DECL_EQ_DELETE;