diff --git a/src/app/valentina/mainwindowsnogui.cpp b/src/app/valentina/mainwindowsnogui.cpp index 6f487a7a8..6fe592e43 100644 --- a/src/app/valentina/mainwindowsnogui.cpp +++ b/src/app/valentina/mainwindowsnogui.cpp @@ -488,8 +488,7 @@ void MainWindowsNoGUI::PrepareDetailsForLayout(const QHash *de { date = QDate::currentDate(); } - det.SetPatternInfo(pDoc->GetPatternName(), pDoc->GetPatternNumber(), pDoc->GetPatternSize(), - pDoc->GetCompanyName(), pDoc->GetCustomerName(), date, geom, qApp->font()); + det.SetPatternInfo(pDoc, geom, qApp->font()); } det.setWidth(qApp->toPixel(d.getWidth())); det.CreateTextItems(); diff --git a/src/app/valentina/xml/vpattern.cpp b/src/app/valentina/xml/vpattern.cpp index 2d6133572..84aeea1d2 100644 --- a/src/app/valentina/xml/vpattern.cpp +++ b/src/app/valentina/xml/vpattern.cpp @@ -656,21 +656,27 @@ void VPattern::ParseDetailElement(const QDomElement &domElement, const Document } else if (element.tagName() == TagData) { - QString qsVisible = element.attribute(AttrVisible, "1"); - detail.GetPatternPieceData().SetVisible(qsVisible.toInt() != 0); - QString qsLetter = element.attribute(AttrLetter, ""); - detail.GetPatternPieceData().SetLetter(qsLetter); + bool bVisible = GetParametrBool(element, AttrVisible, trueStr); + detail.GetPatternPieceData().SetVisible(bVisible); + try + { + QString qsLetter = GetParametrString(element, AttrLetter, ""); + detail.GetPatternPieceData().SetLetter(qsLetter); + } catch(...) + { + detail.GetPatternPieceData().SetLetter(""); + } QPointF ptPos; - ptPos.setX(element.attribute(AttrMx, "0").toDouble()); - ptPos.setY(element.attribute(AttrMy, "0").toDouble()); + ptPos.setX(GetParametrDouble(element, AttrMx, "0")); + ptPos.setY(GetParametrDouble(element, AttrMy, "0")); detail.GetPatternPieceData().SetPos(ptPos); - qreal dLW = element.attribute(VToolDetail::AttrWidth, "0").toDouble(); + qreal dLW = GetParametrDouble(element, VToolDetail::AttrWidth, "0"); detail.GetPatternPieceData().SetLabelWidth(dLW); - qreal dLH = element.attribute(VToolDetail::AttrHeight, "0").toDouble(); + qreal dLH = GetParametrDouble(element, VToolDetail::AttrHeight, "0"); detail.GetPatternPieceData().SetLabelHeight(dLH); - int iFS = element.attribute(VToolDetail::AttrFont, "0").toInt(); + int iFS = GetParametrUInt(element, VToolDetail::AttrFont, "0"); detail.GetPatternPieceData().SetFontSize(iFS); - qreal dRot = element.attribute(VToolDetail::AttrRotation, "0").toDouble(); + qreal dRot = GetParametrDouble(element, VToolDetail::AttrRotation, "0"); detail.GetPatternPieceData().SetRotation(dRot); QDomNodeList nodeListMCP = element.childNodes(); @@ -687,24 +693,23 @@ void VPattern::ParseDetailElement(const QDomElement &domElement, const Document } else if (element.tagName() == TagPatternInfo) { - detail.GetPatternInfo().SetVisible(element.attribute(AttrVisible, "1").toInt() != 0); + detail.GetPatternInfo().SetVisible(GetParametrBool(element, AttrVisible, trueStr)); QPointF ptPos; - ptPos.setX(element.attribute(AttrMx, "0").toDouble()); - ptPos.setY(element.attribute(AttrMy, "0").toDouble()); + ptPos.setX(GetParametrDouble(element, AttrMx, "0")); + ptPos.setY(GetParametrDouble(element, AttrMy, "0")); detail.GetPatternInfo().SetPos(ptPos); - qreal dLW = element.attribute(VToolDetail::AttrWidth, "0").toDouble(); + qreal dLW = GetParametrDouble(element, VToolDetail::AttrWidth, "0"); detail.GetPatternInfo().SetLabelWidth(dLW); - qreal dLH = element.attribute(VToolDetail::AttrHeight, "0").toDouble(); + qreal dLH = GetParametrDouble(element, VToolDetail::AttrHeight, "0"); detail.GetPatternInfo().SetLabelHeight(dLH); - int iFS = element.attribute(VToolDetail::AttrFont, "0").toInt(); + int iFS = GetParametrUInt(element, VToolDetail::AttrFont, "0"); detail.GetPatternInfo().SetFontSize(iFS); - qreal dRot = element.attribute(VToolDetail::AttrRotation, "0").toDouble(); + qreal dRot = GetParametrDouble(element, VToolDetail::AttrRotation, "0"); detail.GetPatternInfo().SetRotation(dRot); } } } VToolDetail::Create(id, detail, sceneDetail, this, data, parse, Source::FromFile); - SetVersion(); } catch (const VExceptionBadId &e) { diff --git a/src/libs/ifc/schema/pattern/v0.3.3.xsd b/src/libs/ifc/schema/pattern/v0.3.3.xsd index 26f4b412f..2b7992a7d 100644 --- a/src/libs/ifc/schema/pattern/v0.3.3.xsd +++ b/src/libs/ifc/schema/pattern/v0.3.3.xsd @@ -18,12 +18,6 @@ - - - - - - @@ -79,6 +73,12 @@ + + + + + + @@ -346,13 +346,13 @@ - - + + - + @@ -363,7 +363,7 @@ - + @@ -552,4 +552,19 @@ + + + + + + + + + + + + + + + diff --git a/src/libs/ifc/xml/vabstractpattern.cpp b/src/libs/ifc/xml/vabstractpattern.cpp index c4991b689..ddb870dd4 100644 --- a/src/libs/ifc/xml/vabstractpattern.cpp +++ b/src/libs/ifc/xml/vabstractpattern.cpp @@ -1073,14 +1073,14 @@ void VAbstractPattern::SetPatternSize(QString qsSize) //--------------------------------------------------------------------------------------------------------------------- bool VAbstractPattern::IsDateVisible() const { - return UniqueTagText(TagShowDate) != QStringLiteral("false"); + return UniqueTagText(TagShowDate) != falseStr; } //--------------------------------------------------------------------------------------------------------------------- void VAbstractPattern::SetDateVisible(bool bVisible) { CheckTagExists(TagShowDate); - setTagText(TagShowDate, bVisible == true? QStringLiteral("true") : QStringLiteral("false")); + setTagText(TagShowDate, bVisible == true? trueStr : falseStr); modified = true; emit patternChanged(false); } @@ -1245,17 +1245,17 @@ QDomElement VAbstractPattern::CheckTagExists(const QString &tag) element = createElement(TagPatternName); break; } - case 7: // TagPatternName + case 7: // TagPatternNum { element = createElement(TagPatternNum); break; } - case 8: // TagPatternName + case 8: // TagCompanyName { element = createElement(TagCompanyName); break; } - case 9: // TagPatternName + case 9: // TagCustomerName { element = createElement(TagCustomerName); break; diff --git a/src/libs/vlayout/vlayout.pro b/src/libs/vlayout/vlayout.pro index 0a77c8638..de7ae8b22 100644 --- a/src/libs/vlayout/vlayout.pro +++ b/src/libs/vlayout/vlayout.pro @@ -7,7 +7,7 @@ # File with common stuff for whole project include(../../../common.pri) -QT += core gui widgets printsupport +QT += core gui widgets printsupport xml # Name of library TARGET = vlayout diff --git a/src/libs/vlayout/vlayoutdetail.cpp b/src/libs/vlayout/vlayoutdetail.cpp index 2de021f92..86e0e6f9e 100644 --- a/src/libs/vlayout/vlayoutdetail.cpp +++ b/src/libs/vlayout/vlayoutdetail.cpp @@ -133,7 +133,7 @@ void VLayoutDetail::SetDetail(const QString& qsName, const VPatternPieceData& da << QPointF(ptPos.x(), ptPos.y() + data.GetLabelHeight()); for (int i = 0; i < v.count(); ++i) { - v[i] = RotatePoint(ptCenter, v[i], dAng); + v[i] = RotatePoint(ptCenter, v.at(i), dAng); } d->detailLabel = RoundPoints(v); @@ -147,9 +147,7 @@ void VLayoutDetail::SetDetail(const QString& qsName, const VPatternPieceData& da } //--------------------------------------------------------------------------------------------------------------------- -void VLayoutDetail::SetPatternInfo(const QString& qsPattern, const QString& qsNumber, const QString& qsSize, - const QString& qsCompany, const QString& qsCustomer, const QDate& date, - const VPatternInfoGeometry& geom, const QFont &font) +void VLayoutDetail::SetPatternInfo(const VAbstractPattern* pDoc, const VPatternInfoGeometry& geom, const QFont &font) { d->patternGeom = geom; qreal dAng = qDegreesToRadians(geom.GetRotation()); @@ -169,7 +167,7 @@ void VLayoutDetail::SetPatternInfo(const QString& qsPattern, const QString& qsNu m_tmPattern.SetFont(font); m_tmPattern.SetFontSize(geom.GetFontSize()); - m_tmPattern.Update(qsPattern, qsNumber, qsSize, qsCompany, qsCustomer, date); + m_tmPattern.Update(pDoc); // generate lines of text m_tmPattern.SetFontSize(geom.GetFontSize()); m_tmPattern.FitFontSize(geom.GetLabelWidth(), geom.GetLabelHeight()); diff --git a/src/libs/vlayout/vlayoutdetail.h b/src/libs/vlayout/vlayoutdetail.h index e813fe9e3..4cd101a7a 100644 --- a/src/libs/vlayout/vlayoutdetail.h +++ b/src/libs/vlayout/vlayoutdetail.h @@ -60,9 +60,7 @@ public: void SetDetail(const QString &qsName, const VPatternPieceData& data, const QFont& font); - void SetPatternInfo(const QString& qsPattern, const QString& qsNumber, const QString& qsSize, - const QString& qsCompany, const QString& qsCustomer, const QDate& date, - const VPatternInfoGeometry& geom, const QFont& font); + void SetPatternInfo(const VAbstractPattern* pDoc, const VPatternInfoGeometry& geom, const QFont& font); QTransform GetMatrix() const; void SetMatrix(const QTransform &matrix); diff --git a/src/libs/vlayout/vtextmanager.cpp b/src/libs/vlayout/vtextmanager.cpp index 5793c0c92..0cadb02e4 100644 --- a/src/libs/vlayout/vtextmanager.cpp +++ b/src/libs/vlayout/vtextmanager.cpp @@ -155,8 +155,7 @@ void VTextManager::Update(const QString& qsName, const VPatternPieceData& data) } //--------------------------------------------------------------------------------------------------------------------- -void VTextManager::Update(const QString &qsPattern, const QString &qsNumber, const QString &qsSize, - const QString &qsCompany, const QString &qsCustomer, const QDate& date) +void VTextManager::Update(const VAbstractPattern *pDoc) { Clear(); TextLine tl; @@ -164,7 +163,7 @@ void VTextManager::Update(const QString &qsPattern, const QString &qsNumber, con tl.m_eAlign = Qt::AlignCenter; // Company name - tl.m_qsText = qsCompany; + tl.m_qsText = pDoc->GetCompanyName(); if (tl.m_qsText.isEmpty() == false) { tl.m_eFontWeight = QFont::DemiBold; @@ -173,7 +172,7 @@ void VTextManager::Update(const QString &qsPattern, const QString &qsNumber, con AddLine(tl); } // Pattern name - tl.m_qsText = qsPattern; + tl.m_qsText = pDoc->GetPatternName(); if (tl.m_qsText.isEmpty() == false) { tl.m_eFontWeight = QFont::Normal; @@ -182,7 +181,7 @@ void VTextManager::Update(const QString &qsPattern, const QString &qsNumber, con AddLine(tl); } // Pattern number - tl.m_qsText = qsNumber; + tl.m_qsText = pDoc->GetPatternNumber(); if (tl.m_qsText.isEmpty() == false) { tl.m_eFontWeight = QFont::Normal; @@ -191,7 +190,7 @@ void VTextManager::Update(const QString &qsPattern, const QString &qsNumber, con AddLine(tl); } // Customer name - tl.m_qsText = qsCustomer; + tl.m_qsText = pDoc->GetCustomerName(); if (tl.m_qsText.isEmpty() == false) { tl.m_eFontWeight = QFont::Normal; @@ -200,7 +199,7 @@ void VTextManager::Update(const QString &qsPattern, const QString &qsNumber, con AddLine(tl); } // Size - tl.m_qsText = qsSize; + tl.m_qsText = pDoc->GetPatternSize(); if (tl.m_qsText.isEmpty() == false) { tl.m_eFontWeight = QFont::Normal; @@ -209,6 +208,11 @@ void VTextManager::Update(const QString &qsPattern, const QString &qsNumber, con AddLine(tl); } // Date + QDate date; + if (pDoc->IsDateVisible() == true) + { + date = QDate::currentDate(); + } if (date.isValid() == true) { tl.m_qsText = date.toString("dd MMMM yyyy"); @@ -217,6 +221,7 @@ void VTextManager::Update(const QString &qsPattern, const QString &qsNumber, con tl.m_iFontSize = 0; AddLine(tl); } + } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vlayout/vtextmanager.h b/src/libs/vlayout/vtextmanager.h index 167073f73..e3bc52f47 100644 --- a/src/libs/vlayout/vtextmanager.h +++ b/src/libs/vlayout/vtextmanager.h @@ -6,6 +6,7 @@ #include #include "../vpatterndb/vpatternpiecedata.h" +#include "../ifc/xml/vabstractpattern.h" #define MIN_FONT_SIZE 12 #define MAX_FONT_SIZE 128 @@ -43,12 +44,9 @@ public: * Updates the manager with detail name and detail data */ void Update(const QString& qsName, const VPatternPieceData& data); - /** @brief Updateconst QString& qsPattern, const QString& qsNumber, const QString& qsSize, - const QString& qsCompany, const QString& qsCustomer, const QDate& date) - Updates the manager with pattern data + /** @brief Update(const VAbstractPattern* pDoc) updates the manager with pattern data */ - void Update(const QString& qsPattern, const QString& qsNumber, const QString& qsSize, - const QString& qsCompany, const QString& qsCustomer, const QDate& date); + void Update(const VAbstractPattern* pDoc); protected: QStringList SplitString(const QString& qs, qreal fW, const QFontMetrics& fm); diff --git a/src/libs/vpatterndb/vpatternpiecedata.h b/src/libs/vpatterndb/vpatternpiecedata.h index 833249f2d..65051a09d 100644 --- a/src/libs/vpatterndb/vpatternpiecedata.h +++ b/src/libs/vpatterndb/vpatternpiecedata.h @@ -37,14 +37,18 @@ enum class MaterialType : char { - mtFabric, - mtLining, - mtInterfacing, - mtInterlining, - mtUserDefined + mtFabric = 0, + mtLining = 1, + mtInterfacing = 2, + mtInterlining = 3, + mtUserDefined = 4 }; -enum class PlacementType : char { ptNone, ptCutOnFold }; +enum class PlacementType : char +{ + ptNone = 0, + ptCutOnFold = 1 +}; /** * @brief This structure holds a material, cut number and placement 3-tuple diff --git a/src/libs/vtools/tools/vtextgraphicsitem.cpp b/src/libs/vtools/tools/vtextgraphicsitem.cpp index f739c973e..06d7af6b6 100644 --- a/src/libs/vtools/tools/vtextgraphicsitem.cpp +++ b/src/libs/vtools/tools/vtextgraphicsitem.cpp @@ -227,10 +227,9 @@ void VTextGraphicsItem::UpdateData(const QString &qsName, const VPatternPieceDat } //--------------------------------------------------------------------------------------------------------------------- -void VTextGraphicsItem::UpdateData(const QString &qsPattern, const QString &qsNumber, const QString &qsSize, - const QString &qsCompany, const QString &qsCustomer, const QDate &date) +void VTextGraphicsItem::UpdateData(const VAbstractPattern* pDoc) { - m_tm.Update(qsPattern, qsNumber, qsSize, qsCompany, qsCustomer, date); + m_tm.Update(pDoc); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/tools/vtextgraphicsitem.h b/src/libs/vtools/tools/vtextgraphicsitem.h index 29f9e39a9..14a585d9a 100644 --- a/src/libs/vtools/tools/vtextgraphicsitem.h +++ b/src/libs/vtools/tools/vtextgraphicsitem.h @@ -63,8 +63,7 @@ public: void Update(); bool IsContained(QRectF rectBB, qreal dRot, qreal& dX, qreal& dY) const; void UpdateData(const QString& qsName, const VPatternPieceData& data); - void UpdateData(const QString& qsPattern, const QString& qsNumber, const QString& qsSize, - const QString& qsCompany, const QString& qsCustomer, const QDate& date); + void UpdateData(const VAbstractPattern* pDoc); protected: void mousePressEvent(QGraphicsSceneMouseEvent* pME); diff --git a/src/libs/vtools/tools/vtooldetail.cpp b/src/libs/vtools/tools/vtooldetail.cpp index ec757abbd..c73425416 100644 --- a/src/libs/vtools/tools/vtooldetail.cpp +++ b/src/libs/vtools/tools/vtooldetail.cpp @@ -730,14 +730,7 @@ void VToolDetail::UpdatePatternInfo() fnt.setPixelSize(iFS); patternInfo->SetFont(fnt); patternInfo->SetSize(geom.GetLabelWidth(), geom.GetLabelHeight()); - - QDate date; - if (doc->IsDateVisible() == true) - { - date = QDate::currentDate(); - } - patternInfo->UpdateData(doc->GetPatternName(), doc->GetPatternNumber(), doc->GetPatternSize(), - doc->GetCompanyName(), doc->GetCustomerName(), date); + patternInfo->UpdateData(doc); QPointF pt = geom.GetPos(); QRectF rectBB;