diff --git a/src/libs/vpatterndb/vcontainer.cpp b/src/libs/vpatterndb/vcontainer.cpp index 5661de0c3..93f74e225 100644 --- a/src/libs/vpatterndb/vcontainer.cpp +++ b/src/libs/vpatterndb/vcontainer.cpp @@ -166,6 +166,19 @@ const VDetail VContainer::GetDetail(quint32 id) const } } +//--------------------------------------------------------------------------------------------------------------------- +VPiece VContainer::GetPiece(quint32 id) const +{ + if (d->pieces->contains(id)) + { + return d->pieces->value(id); + } + else + { + throw VExceptionBadId(tr("Can't find object"), id); + } +} + //--------------------------------------------------------------------------------------------------------------------- /** * @brief AddGObject add new GObject to container @@ -193,6 +206,14 @@ quint32 VContainer::AddDetail(const VDetail &detail) return id; } +//--------------------------------------------------------------------------------------------------------------------- +quint32 VContainer::AddPiece(const VPiece &detail) +{ + const quint32 id = getNextId(); + d->pieces->insert(id, detail); + return id; +} + //--------------------------------------------------------------------------------------------------------------------- quint32 VContainer::getId() { @@ -500,6 +521,14 @@ void VContainer::UpdateDetail(quint32 id, const VDetail &detail) UpdateId(id); } +//--------------------------------------------------------------------------------------------------------------------- +void VContainer::UpdatePiece(quint32 id, const VPiece &detail) +{ + Q_ASSERT_X(id != NULL_ID, Q_FUNC_INFO, "id == 0"); //-V654 //-V712 + d->pieces->insert(id, detail); + UpdateId(id); +} + //--------------------------------------------------------------------------------------------------------------------- qreal VContainer::GetTableValue(const QString &name, MeasurementsType patternType) const { @@ -734,6 +763,12 @@ const QHash *VContainer::DataDetails() const return d->details.data(); } +//--------------------------------------------------------------------------------------------------------------------- +const QHash *VContainer::DataPieces() const +{ + return d->pieces.data(); +} + //--------------------------------------------------------------------------------------------------------------------- const QHash > *VContainer::DataVariables() const { diff --git a/src/libs/vpatterndb/vcontainer.h b/src/libs/vpatterndb/vcontainer.h index 028d763ce..1ffe87e33 100644 --- a/src/libs/vpatterndb/vcontainer.h +++ b/src/libs/vpatterndb/vcontainer.h @@ -54,6 +54,7 @@ #include "variables.h" #include "variables/vinternalvariable.h" #include "vdetail.h" +#include "vpiece.h" #include "vtranslatevars.h" class VAbstractCubicBezierPath; @@ -81,6 +82,7 @@ public: : gObjects(QHash >()), variables(QHash > ()), details(QSharedPointer>(new QHash())), + pieces(QSharedPointer>(new QHash())), trVars(trVars), patternUnit(patternUnit) {} @@ -108,6 +110,7 @@ public: * @brief details container of details */ QSharedPointer> details; + QSharedPointer> pieces; const VTranslateVars *trVars; const Unit *patternUnit; @@ -135,6 +138,7 @@ public: const QSharedPointer GetGObject(quint32 id) const; static const QSharedPointer GetFakeGObject(quint32 id); const VDetail GetDetail(quint32 id) const; + VPiece GetPiece(quint32 id) const; qreal GetTableValue(const QString& name, MeasurementsType patternType) const; template QSharedPointer GetVariable(QString name) const; @@ -144,6 +148,7 @@ public: quint32 AddGObject(VGObject *obj); quint32 AddDetail(const VDetail &detail); + quint32 AddPiece(const VPiece &detail); void AddLine(const quint32 &firstPointId, const quint32 &secondPointId); void AddArc(const QSharedPointer &arc, const quint32 &arcId, const quint32 &parentId = NULL_ID); void AddSpline(const QSharedPointer &curve, quint32 id, quint32 parentId = NULL_ID); @@ -156,6 +161,7 @@ public: void UpdateGObject(quint32 id, VGObject* obj); void UpdateDetail(quint32 id, const VDetail &detail); + void UpdatePiece(quint32 id, const VPiece &detail); void Clear(); void ClearForFullParse(); @@ -178,6 +184,7 @@ public: const QHash > *DataGObjects() const; const QHash *DataDetails() const; + const QHash *DataPieces() const; const QHash> *DataVariables() const; const QMap > DataMeasurements() const;