From 20f5cb3694993bedfa947963a14a2049e4821a61 Mon Sep 17 00:00:00 2001 From: Roman Telezhynskyi Date: Mon, 21 Aug 2017 14:25:27 +0300 Subject: [PATCH] Read measurements size and height from individual measurements file to insert data into label template. The size measurement was added as synonym of bust_arc_f. --HG-- branch : feature --- src/app/valentina/mainwindow.cpp | 37 +++++++--- src/libs/vlayout/vtextmanager.cpp | 2 + src/libs/vpatterndb/measurements.cpp | 74 ++++++++++--------- src/libs/vpatterndb/measurements.h | 4 + .../vpatterndb/vtranslatemeasurements.cpp | 7 ++ .../dialogs/support/dialogeditlabel.cpp | 2 + src/test/ValentinaTest/tst_nameregexp.cpp | 4 + 7 files changed, 84 insertions(+), 46 deletions(-) diff --git a/src/app/valentina/mainwindow.cpp b/src/app/valentina/mainwindow.cpp index 16b69f42b..e431ca71c 100644 --- a/src/app/valentina/mainwindow.cpp +++ b/src/app/valentina/mainwindow.cpp @@ -62,6 +62,7 @@ #include "../vtools/undocommands/addgroup.h" #include "dialogs/vwidgetdetails.h" #include "../vpatterndb/vpiecepath.h" +#include "../vpatterndb/measurements.h" #include "../qmuparser/qmuparsererror.h" #include "../vtools/dialogs/support/dialogeditlabel.h" @@ -452,12 +453,6 @@ bool MainWindow::LoadMeasurements(const QString &path) return false; } - if (m->Type() == MeasurementsType::Multisize) - { - VContainer::SetSize(UnitConvertor(m->BaseSize(), m->MUnit(), *m->GetData()->GetPatternUnit())); - VContainer::SetHeight(UnitConvertor(m->BaseHeight(), m->MUnit(), *m->GetData()->GetPatternUnit())); - } - try { qApp->setPatternType(m->Type()); @@ -475,6 +470,18 @@ bool MainWindow::LoadMeasurements(const QString &path) } return false; } + + if (m->Type() == MeasurementsType::Multisize) + { + VContainer::SetSize(UnitConvertor(m->BaseSize(), m->MUnit(), *m->GetData()->GetPatternUnit())); + VContainer::SetHeight(UnitConvertor(m->BaseHeight(), m->MUnit(), *m->GetData()->GetPatternUnit())); + } + else if (m->Type() == MeasurementsType::Individual) + { + VContainer::SetSize(*pattern->DataVariables()->value(size_M)->GetValue()); + VContainer::SetHeight(*pattern->DataVariables()->value(height_M)->GetValue()); + } + return true; } @@ -498,12 +505,6 @@ bool MainWindow::UpdateMeasurements(const QString &path, int size, int height) return false; } - if (m->Type() == MeasurementsType::Multisize) - { - VContainer::SetSize(size); - VContainer::SetHeight(height); - } - try { pattern->ClearVariables(VarType::Measurement); @@ -519,6 +520,18 @@ bool MainWindow::UpdateMeasurements(const QString &path, int size, int height) } return false; } + + if (m->Type() == MeasurementsType::Multisize) + { + VContainer::SetSize(size); + VContainer::SetHeight(height); + } + else if (m->Type() == MeasurementsType::Individual) + { + VContainer::SetSize(*pattern->DataVariables()->value(size_M)->GetValue()); + VContainer::SetHeight(*pattern->DataVariables()->value(height_M)->GetValue()); + } + return true; } diff --git a/src/libs/vlayout/vtextmanager.cpp b/src/libs/vlayout/vtextmanager.cpp index 6b104f91b..c5e21c952 100644 --- a/src/libs/vlayout/vtextmanager.cpp +++ b/src/libs/vlayout/vtextmanager.cpp @@ -93,6 +93,8 @@ QMap PreparePlaceholders(const VAbstractPattern *doc) } else if (qApp->patternType() == MeasurementsType::Individual) { + curSize = QString::number(VContainer::size()); + curHeight = QString::number(VContainer::height()); mExt = "vit"; } diff --git a/src/libs/vpatterndb/measurements.cpp b/src/libs/vpatterndb/measurements.cpp index 26a696fe4..45f70bfc5 100644 --- a/src/libs/vpatterndb/measurements.cpp +++ b/src/libs/vpatterndb/measurements.cpp @@ -96,7 +96,11 @@ const QString highhipCirc_M = QStringLiteral("highhip_circ"); / const QString hipCirc_M = QStringLiteral("hip_circ"); // G09 const QString neckArcF_M = QStringLiteral("neck_arc_f"); // G10 const QString highbustArcF_M = QStringLiteral("highbust_arc_f"); // G11 + +// size and bust_arc_f are synonyms +const QString size_M = QStringLiteral("size"); // G12 const QString bustArcF_M = QStringLiteral("bust_arc_f"); // G12 + const QString lowbustArcF_M = QStringLiteral("lowbust_arc_f"); // G13 const QString ribArcF_M = QStringLiteral("rib_arc_f"); // G14 const QString waistArcF_M = QStringLiteral("waist_arc_f"); // G15 @@ -400,6 +404,7 @@ QStringList ListGroupG() << neckArcF_M // G10 << highbustArcF_M // G11 << bustArcF_M // G12 + << size_M // G12 << lowbustArcF_M // G13 << ribArcF_M // G14 << waistArcF_M // G15 @@ -794,47 +799,48 @@ QString MapDiagrams(const VTranslateMeasurements *trM, const QString &number) case 9: // G10 case 10: // G11 case 11: // G12 - case 12: // G13 - case 13: // G14 - case 14: // G15 - case 15: // G16 - case 16: // G17 + case 12: // G12 + case 13: // G13 + case 14: // G14 + case 15: // G15 + case 16: // G16 + case 17: // G17 return QStringLiteral("Gp2"); - case 17: // G18 - case 18: // G19 - case 19: // G20 - case 20: // G21 - case 21: // G22 - case 22: // G23 - case 23: // G24 - case 24: // G25 + case 18: // G18 + case 19: // G19 + case 20: // G20 + case 21: // G21 + case 22: // G22 + case 23: // G23 + case 24: // G24 + case 25: // G25 return QStringLiteral("Gp3"); - case 25: // G26 - case 26: // G27 - case 27: // G28 - case 28: // G29 - case 29: // G30 - case 30: // G31 - case 31: // G32 - case 32: // G33 + case 26: // G26 + case 27: // G27 + case 28: // G28 + case 29: // G29 + case 30: // G30 + case 31: // G31 + case 32: // G32 + case 33: // G33 return QStringLiteral("Gp4"); - case 33: // G34 - case 34: // G35 - case 35: // G36 - case 36: // G37 - case 37: // G38 - case 38: // G39 - case 39: // G40 - case 40: // G41 + case 34: // G34 + case 35: // G35 + case 36: // G36 + case 37: // G37 + case 38: // G38 + case 39: // G39 + case 40: // G40 + case 41: // G41 return QStringLiteral("Gp5"); - case 41: // G42 + case 42: // G42 return QStringLiteral("Gp6"); - case 42: // G43 - case 43: // G44 + case 43: // G43 + case 44: // G44 return QStringLiteral("Gp7"); - case 44: // G45 + case 45: // G45 return QStringLiteral("Gp8"); - case 45: // G46 + case 46: // G46 return QStringLiteral("Gp9"); default: break; diff --git a/src/libs/vpatterndb/measurements.h b/src/libs/vpatterndb/measurements.h index e63875104..8d034b923 100644 --- a/src/libs/vpatterndb/measurements.h +++ b/src/libs/vpatterndb/measurements.h @@ -98,7 +98,11 @@ extern const QString highhipCirc_M; // G08 extern const QString hipCirc_M; // G09 extern const QString neckArcF_M; // G10 extern const QString highbustArcF_M; // G11 + +// size and bust_arc_f are synonyms +extern const QString size_M; // G12 extern const QString bustArcF_M; // G12 + extern const QString lowbustArcF_M; // G13 extern const QString ribArcF_M; // G14 extern const QString waistArcF_M; // G15 diff --git a/src/libs/vpatterndb/vtranslatemeasurements.cpp b/src/libs/vpatterndb/vtranslatemeasurements.cpp index f1bc8b6ef..44dead041 100644 --- a/src/libs/vpatterndb/vtranslatemeasurements.cpp +++ b/src/libs/vpatterndb/vtranslatemeasurements.cpp @@ -669,6 +669,13 @@ void VTranslateMeasurements::InitGroupG() "Full measurement description."); InitMeasurement(bustArcF_M, m, g, d, "G12"); //================================================================================================================= + m = translate("VTranslateMeasurements", "size", + "Name in a formula. Don't use math symbols and space in name!!!!"); + g = translate("VTranslateMeasurements", "Size", "Full measurement name."); + d = translate("VTranslateMeasurements", "Same as bust_arc_f.", + "Full measurement description."); + InitMeasurement(size_M, m, g, d, "G12"); + //================================================================================================================= m = translate("VTranslateMeasurements", "lowbust_arc_f", "Name in a formula. Don't use math symbols and space in name!!!!"); g = translate("VTranslateMeasurements", "Lowbust arc, front", "Full measurement name."); diff --git a/src/libs/vtools/dialogs/support/dialogeditlabel.cpp b/src/libs/vtools/dialogs/support/dialogeditlabel.cpp index a7cadf1e4..c59ad9733 100644 --- a/src/libs/vtools/dialogs/support/dialogeditlabel.cpp +++ b/src/libs/vtools/dialogs/support/dialogeditlabel.cpp @@ -497,6 +497,8 @@ void DialogEditLabel::InitPlaceholders() } else if (qApp->patternType() == MeasurementsType::Individual) { + curSize = QString::number(VContainer::size()); + curHeight = QString::number(VContainer::height()); mExt = "vit"; } diff --git a/src/test/ValentinaTest/tst_nameregexp.cpp b/src/test/ValentinaTest/tst_nameregexp.cpp index 01f589a98..9c6de7eee 100644 --- a/src/test/ValentinaTest/tst_nameregexp.cpp +++ b/src/test/ValentinaTest/tst_nameregexp.cpp @@ -250,7 +250,11 @@ void TST_NameRegExp::TestCorrectOrderMeasurement_data() QTest::newRow("G09") << hipCirc_M << "hip_circ"; QTest::newRow("G10") << neckArcF_M << "neck_arc_f"; QTest::newRow("G11") << highbustArcF_M << "highbust_arc_f"; + + // size and bust_arc_f are synonyms QTest::newRow("G12") << bustArcF_M << "bust_arc_f"; + QTest::newRow("G12") << size_M << "size"; + QTest::newRow("G13") << lowbustArcF_M << "lowbust_arc_f"; QTest::newRow("G14") << ribArcF_M << "rib_arc_f"; QTest::newRow("G15") << waistArcF_M << "waist_arc_f";