diff --git a/src/app/tape/share/resources/diagrams.qrc b/src/app/tape/share/resources/diagrams.qrc
index a12f6afa4..ee4476135 100644
--- a/src/app/tape/share/resources/diagrams.qrc
+++ b/src/app/tape/share/resources/diagrams.qrc
@@ -22,6 +22,7 @@
diagrams/Gp6.png
diagrams/Gp7.png
diagrams/Gp8.png
+ diagrams/Gp9.png
diagrams/Hp1.png
diagrams/Hp2.png
diagrams/Hp3.png
@@ -34,6 +35,7 @@
diagrams/Hp10.png
diagrams/Hp11.png
diagrams/Hp12.png
+ diagrams/Hp13.png
diagrams/Ip1.png
diagrams/Ip2.png
diagrams/Ip3.png
@@ -66,6 +68,7 @@
diagrams/Lp7.png
diagrams/Lp8.png
diagrams/Lp9.png
+ diagrams/Lp10.png
diagrams/Mp1.png
diagrams/Mp2.png
diagrams/Mp3.png
diff --git a/src/app/tape/share/resources/diagrams/Gp9.png b/src/app/tape/share/resources/diagrams/Gp9.png
new file mode 100644
index 000000000..e8a7da4eb
Binary files /dev/null and b/src/app/tape/share/resources/diagrams/Gp9.png differ
diff --git a/src/app/tape/share/resources/diagrams/Hp13.png b/src/app/tape/share/resources/diagrams/Hp13.png
new file mode 100644
index 000000000..769106665
Binary files /dev/null and b/src/app/tape/share/resources/diagrams/Hp13.png differ
diff --git a/src/app/tape/share/resources/diagrams/Lp10.png b/src/app/tape/share/resources/diagrams/Lp10.png
new file mode 100644
index 000000000..b5dd8e802
Binary files /dev/null and b/src/app/tape/share/resources/diagrams/Lp10.png differ
diff --git a/src/app/tape/tape.pro b/src/app/tape/tape.pro
index ce79f6976..e1e8d5c2b 100644
--- a/src/app/tape/tape.pro
+++ b/src/app/tape/tape.pro
@@ -286,6 +286,7 @@ DIAGRAMS += \
$${PWD}/share/resources/diagrams/Gp6.png \
$${PWD}/share/resources/diagrams/Gp7.png \
$${PWD}/share/resources/diagrams/Gp8.png \
+ $${PWD}/share/resources/diagrams/Gp9.png \
$${PWD}/share/resources/diagrams/Hp1.png \
$${PWD}/share/resources/diagrams/Hp2.png \
$${PWD}/share/resources/diagrams/Hp3.png \
@@ -298,6 +299,7 @@ DIAGRAMS += \
$${PWD}/share/resources/diagrams/Hp10.png \
$${PWD}/share/resources/diagrams/Hp11.png \
$${PWD}/share/resources/diagrams/Hp12.png \
+ $${PWD}/share/resources/diagrams/Hp13.png \
$${PWD}/share/resources/diagrams/Ip1.png \
$${PWD}/share/resources/diagrams/Ip2.png \
$${PWD}/share/resources/diagrams/Ip3.png \
@@ -330,6 +332,7 @@ DIAGRAMS += \
$${PWD}/share/resources/diagrams/Lp7.png \
$${PWD}/share/resources/diagrams/Lp8.png \
$${PWD}/share/resources/diagrams/Lp9.png \
+ $${PWD}/share/resources/diagrams/Lp10.png \
$${PWD}/share/resources/diagrams/Mp1.png \
$${PWD}/share/resources/diagrams/Mp2.png \
$${PWD}/share/resources/diagrams/Mp3.png \
diff --git a/src/libs/vmisc/def.cpp b/src/libs/vmisc/def.cpp
index 57a350dbd..c310a7bb3 100644
--- a/src/libs/vmisc/def.cpp
+++ b/src/libs/vmisc/def.cpp
@@ -135,6 +135,7 @@ const QString hipWithAbdomenArcF_M = QStringLiteral("hip_with_abdomen_arc_f"); /
const QString bodyArmfoldCirc_M = QStringLiteral("body_armfold_circ"); // G43
const QString bodyBustCirc_M = QStringLiteral("body_bust_circ"); // G44
const QString bodyTorsoCirc_M = QStringLiteral("body_torso_circ"); // G45
+const QString hipCircWithAbdomen_M = QStringLiteral("hip_circ_with_abdomen"); // G46
// H
const QString neckFrontToWaistF_M = QStringLiteral("neck_front_to_waist_f"); // H01
const QString neckFrontToWaistFlatF_M = QStringLiteral("neck_front_to_waist_flat_f"); // H02
@@ -176,6 +177,8 @@ const QString shoulderSlopeNeckSideLength_M = QStringLiteral("shoulder_slope_n
const QString shoulderSlopeNeckBackAngle_M = QStringLiteral("shoulder_slope_neck_back_angle"); // H38
const QString shoulderSlopeNeckBackHeight_M = QStringLiteral("shoulder_slope_neck_back_height"); // H39
const QString shoulderSlopeShoulderTipAngle_M = QStringLiteral("shoulder_slope_shoulder_tip_angle"); // H40
+const QString neckBackToAcrossBack_M = QStringLiteral("neck_back_to_across_back"); // H41
+const QString acrossBackToWaistB_M = QStringLiteral("across_back_to_waist_b"); // H42
// I
const QString shoulderLength_M = QStringLiteral("shoulder_length"); // I01
const QString shoulderTipToShoulderTipF_M = QStringLiteral("shoulder_tip_to_shoulder_tip_f"); // I02
@@ -237,6 +240,7 @@ const QString armNeckSideToFingerTip_M = QStringLiteral("arm_neck_side_to_f
const QString armscyeCirc_M = QStringLiteral("armscye_circ"); // L19
const QString armscyeLength_M = QStringLiteral("armscye_length"); // L20
const QString armscyeWidth_M = QStringLiteral("armscye_width"); // L21
+const QString armNeckSideToOuterElbow_M = QStringLiteral("arm_neck_side_to_outer_elbow"); // L22
// M
const QString legCrotchToFloor_M = QStringLiteral("leg_crotch_to_floor"); // M01
const QString legWaistSideToFloor_M = QStringLiteral("leg_waist_side_to_floor"); // M02
@@ -662,51 +666,52 @@ QStringList ListGroupF()
//---------------------------------------------------------------------------------------------------------------------
QStringList ListGroupG()
{
- const QStringList list = QStringList() << neckMidCirc_M // G01
- << neckCirc_M // G02
- << highbustCirc_M // G03
- << bustCirc_M // G04
- << lowbustCirc_M // G05
- << ribCirc_M // G06
- << waistCirc_M // G07
- << highhipCirc_M // G08
- << hipCirc_M // G09
- << neckArcF_M // G10
- << highbustArcF_M // G11
- << bustArcF_M // G12
- << lowbustArcF_M // G13
- << ribArcF_M // G14
- << waistArcF_M // G15
- << highhipArcF_M // G16
- << hipArcF_M // G17
- << neckArcHalfF_M // G18
- << highbustArcHalfF_M // G19
- << bustArcHalfF_M // G20
- << lowbustArcHalfF_M // G21
- << ribArcHalfF_M // G22
- << waistArcHalfF_M // G23
- << highhipArcHalfF_M // G24
- << hipArcHalfF_M // G25
- << neckArcB_M // G26
- << highbustArcB_M // G27
- << bustArcB_M // G28
- << lowbustArcB_M // G29
- << ribArcB_M // G30
- << waistArcB_M // G31
- << highhipArcB_M // G32
- << hipArcB_M // G33
- << neckArcHalfB_M // G34
- << highbustArcHalfB_M // G35
- << bustArcHalfB_M // G36
- << lowbustArcHalfB_M // G37
- << ribArcHalfB_M // G38
- << waistArcHalfB_M // G39
- << highhipArcHalfB_M // G40
- << hipArcHalfB_M // G41
- << hipWithAbdomenArcF_M // G42
- << bodyArmfoldCirc_M // G43
- << bodyBustCirc_M // G44
- << bodyTorsoCirc_M; // G45
+ const QStringList list = QStringList() << neckMidCirc_M // G01
+ << neckCirc_M // G02
+ << highbustCirc_M // G03
+ << bustCirc_M // G04
+ << lowbustCirc_M // G05
+ << ribCirc_M // G06
+ << waistCirc_M // G07
+ << highhipCirc_M // G08
+ << hipCirc_M // G09
+ << neckArcF_M // G10
+ << highbustArcF_M // G11
+ << bustArcF_M // G12
+ << lowbustArcF_M // G13
+ << ribArcF_M // G14
+ << waistArcF_M // G15
+ << highhipArcF_M // G16
+ << hipArcF_M // G17
+ << neckArcHalfF_M // G18
+ << highbustArcHalfF_M // G19
+ << bustArcHalfF_M // G20
+ << lowbustArcHalfF_M // G21
+ << ribArcHalfF_M // G22
+ << waistArcHalfF_M // G23
+ << highhipArcHalfF_M // G24
+ << hipArcHalfF_M // G25
+ << neckArcB_M // G26
+ << highbustArcB_M // G27
+ << bustArcB_M // G28
+ << lowbustArcB_M // G29
+ << ribArcB_M // G30
+ << waistArcB_M // G31
+ << highhipArcB_M // G32
+ << hipArcB_M // G33
+ << neckArcHalfB_M // G34
+ << highbustArcHalfB_M // G35
+ << bustArcHalfB_M // G36
+ << lowbustArcHalfB_M // G37
+ << ribArcHalfB_M // G38
+ << waistArcHalfB_M // G39
+ << highhipArcHalfB_M // G40
+ << hipArcHalfB_M // G41
+ << hipWithAbdomenArcF_M // G42
+ << bodyArmfoldCirc_M // G43
+ << bodyBustCirc_M // G44
+ << bodyTorsoCirc_M // G45
+ << hipCircWithAbdomen_M; // G46
return list;
}
@@ -753,7 +758,9 @@ QStringList ListGroupH()
<< shoulderSlopeNeckSideLength_M // H37
<< shoulderSlopeNeckBackAngle_M // H38
<< shoulderSlopeNeckBackHeight_M // H39
- << shoulderSlopeShoulderTipAngle_M; // H40
+ << shoulderSlopeShoulderTipAngle_M // H40
+ << neckBackToAcrossBack_M // H41
+ << acrossBackToWaistB_M; // H42
return list;
}
@@ -838,7 +845,8 @@ QStringList ListGroupL()
<< armNeckSideToFingerTip_M // L18
<< armscyeCirc_M // L19
<< armscyeLength_M // L20
- << armscyeWidth_M; // L21
+ << armscyeWidth_M // L21
+ << armNeckSideToOuterElbow_M; // L22
return list;
}
@@ -1302,6 +1310,8 @@ QString MapDiagrams(const QString &number)
return QStringLiteral("Gp7");
case 44: // G45
return QStringLiteral("Gp8");
+ case 45: // G46
+ return QStringLiteral("Gp9");
default:
break;
}
@@ -1389,6 +1399,10 @@ QString MapDiagrams(const QString &number)
return QStringLiteral("Hp11");
case 39: // H40
return QStringLiteral("Hp12");
+ case 40: // H41
+ V_FALLTHROUGH
+ case 41: // H42
+ return QStringLiteral("Hp13");
default:
break;
}
@@ -1531,6 +1545,8 @@ QString MapDiagrams(const QString &number)
return QStringLiteral("Lp8");
case 20: // L21
return QStringLiteral("Lp9");
+ case 21: // L22
+ return QStringLiteral("Lp10");
default:
break;
}
diff --git a/src/libs/vmisc/def.h b/src/libs/vmisc/def.h
index 39b9e889a..8d7a3dcec 100644
--- a/src/libs/vmisc/def.h
+++ b/src/libs/vmisc/def.h
@@ -291,6 +291,7 @@ extern const QString hipWithAbdomenArcF_M; // G42
extern const QString bodyArmfoldCirc_M; // G43
extern const QString bodyBustCirc_M; // G44
extern const QString bodyTorsoCirc_M; // G45
+extern const QString hipCircWithAbdomen_M; // G46
// H
extern const QString neckFrontToWaistF_M; // H01
extern const QString neckFrontToWaistFlatF_M; // H02
@@ -332,6 +333,8 @@ extern const QString shoulderSlopeNeckSideLength_M; // H37
extern const QString shoulderSlopeNeckBackAngle_M; // H38
extern const QString shoulderSlopeNeckBackHeight_M; // H39
extern const QString shoulderSlopeShoulderTipAngle_M; // H40
+extern const QString neckBackToAcrossBack_M; // H41
+extern const QString acrossBackToWaistB_M; // H42
// I
extern const QString shoulderLength_M; // I01
extern const QString shoulderTipToShoulderTipF_M; // I02
@@ -393,6 +396,7 @@ extern const QString armNeckSideToFingerTip_M; // L18
extern const QString armscyeCirc_M; // L19
extern const QString armscyeLength_M; // L20
extern const QString armscyeWidth_M; // L21
+extern const QString armNeckSideToOuterElbow_M; // L22
// M
extern const QString legCrotchToFloor_M; // M01
extern const QString legWaistSideToFloor_M; // M02
diff --git a/src/libs/vpatterndb/vtranslatemeasurements.cpp b/src/libs/vpatterndb/vtranslatemeasurements.cpp
index 438b43f4c..75da2960b 100644
--- a/src/libs/vpatterndb/vtranslatemeasurements.cpp
+++ b/src/libs/vpatterndb/vtranslatemeasurements.cpp
@@ -904,6 +904,14 @@ void VTranslateMeasurements::InitGroupG()
"Full measurement description.");
InitMeasurement(bodyTorsoCirc_M, m, g, d, "G45");
//=================================================================================================================
+ m = translate("VTranslateMeasurements", "hip_circ_with_abdomen",
+ "Name in a formula. Don't use math symbols and space in name!!!!");
+ g = translate("VTranslateMeasurements", "Hip circumference, including Abdomen", "Full measurement name.");
+ d = translate("VTranslateMeasurements",
+ "Measurement at Hip level, including the depth of the Abdomen. (Hip arc, back + Hip arc with "
+ "abdomen, front).", "Full measurement description.");
+ InitMeasurement(hipCircWithAbdomen_M, m, g, d, "G46", "(hip_arc_b + hip_with_abdomen_arc_f)");
+ //=================================================================================================================
}
//---------------------------------------------------------------------------------------------------------------------
@@ -1195,6 +1203,20 @@ void VTranslateMeasurements::InitGroupH()
"Full measurement description.");
InitMeasurement(shoulderSlopeShoulderTipAngle_M, m, g, d, "H40");
//=================================================================================================================
+ m = translate("VTranslateMeasurements", "neck_back_to_across_back",
+ "Name in a formula. Don't use math symbols and space in name!!!!");
+ g = translate("VTranslateMeasurements", "Neck Back to Across Back", "Full measurement name.");
+ d = translate("VTranslateMeasurements", "From neck back, down to level of Across Back measurement.",
+ "Full measurement description.");
+ InitMeasurement(neckBackToAcrossBack_M, m, g, d, "H41");
+ //=================================================================================================================
+ m = translate("VTranslateMeasurements", "across_back_to_waist_b",
+ "Name in a formula. Don't use math symbols and space in name!!!!");
+ g = translate("VTranslateMeasurements", "Across Back to Waist back", "Full measurement name.");
+ d = translate("VTranslateMeasurements", "From middle of Across Back down to Waist back.",
+ "Full measurement description.");
+ InitMeasurement(acrossBackToWaistB_M, m, g, d, "H42", "(neck_back_to_waist_b - neck_back_to_across_back)");
+ //=================================================================================================================
}
//---------------------------------------------------------------------------------------------------------------------
@@ -1646,6 +1668,13 @@ void VTranslateMeasurements::InitGroupL()
"Full measurement description.");
InitMeasurement(armscyeWidth_M, m, g, d, "L21");
//=================================================================================================================
+ m = translate("VTranslateMeasurements", "arm_neck_side_to_outer_elbow",
+ "Name in a formula. Don't use math symbols and space in name!!!!");
+ g = translate("VTranslateMeasurements", "Arm: Neck side to Elbow", "Full measurement name.");
+ d = translate("VTranslateMeasurements", "From Neck Side over Shoulder Tip down to Elbow. (Shoulder length + "
+ "Arm: Shoulder Tip to Elbow).", "Full measurement description.");
+ InitMeasurement(armNeckSideToOuterElbow_M, m, g, d, "L22", "(shoulder_length + arm_shoulder_tip_to_elbow)");
+ //=================================================================================================================
}
//---------------------------------------------------------------------------------------------------------------------
diff --git a/src/test/ValentinaTest/tst_measurementregexp.cpp b/src/test/ValentinaTest/tst_measurementregexp.cpp
index 91691d416..203719859 100644
--- a/src/test/ValentinaTest/tst_measurementregexp.cpp
+++ b/src/test/ValentinaTest/tst_measurementregexp.cpp
@@ -212,6 +212,7 @@ void TST_MeasurementRegExp::TestCorrectOrderMeasurement_data()
QTest::newRow("G43") << bodyArmfoldCirc_M << "body_armfold_circ";
QTest::newRow("G44") << bodyBustCirc_M << "body_bust_circ";
QTest::newRow("G45") << bodyTorsoCirc_M << "body_torso_circ";
+ QTest::newRow("G46") << hipCircWithAbdomen_M << "hip_circ_with_abdomen";
QTest::newRow("H01") << neckFrontToWaistF_M << "neck_front_to_waist_f";
QTest::newRow("H02") << neckFrontToWaistFlatF_M << "neck_front_to_waist_flat_f";
QTest::newRow("H03") << armpitToWaistSide_M << "armpit_to_waist_side";
@@ -252,6 +253,8 @@ void TST_MeasurementRegExp::TestCorrectOrderMeasurement_data()
QTest::newRow("H38") << shoulderSlopeNeckBackAngle_M << "shoulder_slope_neck_back_angle";
QTest::newRow("H39") << shoulderSlopeNeckBackHeight_M << "shoulder_slope_neck_back_height";
QTest::newRow("H40") << shoulderSlopeShoulderTipAngle_M << "shoulder_slope_shoulder_tip_angle";
+ QTest::newRow("H41") << neckBackToAcrossBack_M << "neck_back_to_across_back";
+ QTest::newRow("H42") << acrossBackToWaistB_M << "across_back_to_waist_b";
QTest::newRow("I01") << shoulderLength_M << "shoulder_length";
QTest::newRow("I02") << shoulderTipToShoulderTipF_M << "shoulder_tip_to_shoulder_tip_f";
QTest::newRow("I03") << acrossChestF_M << "across_chest_f";
@@ -309,6 +312,7 @@ void TST_MeasurementRegExp::TestCorrectOrderMeasurement_data()
QTest::newRow("L19") << armscyeCirc_M << "armscye_circ";
QTest::newRow("L20") << armscyeLength_M << "armscye_length";
QTest::newRow("L21") << armscyeWidth_M << "armscye_width";
+ QTest::newRow("L22") << armNeckSideToOuterElbow_M << "arm_neck_side_to_outer_elbow";
QTest::newRow("M01") << legCrotchToFloor_M << "leg_crotch_to_floor";
QTest::newRow("M02") << legWaistSideToFloor_M << "leg_waist_side_to_floor";
QTest::newRow("M03") << legThighUpperCirc_M << "leg_thigh_upper_circ";
@@ -350,7 +354,8 @@ void TST_MeasurementRegExp::TestCorrectOrderMeasurement_data()
QTest::newRow("P04") << highbustBackOverShoulderToArmfoldFront_M << "highbust_back_over_shoulder_to_armfold_front";
QTest::newRow("P05") << highbustBackOverShoulderToWaistFront_M << "highbust_back_over_shoulder_to_waist_front";
QTest::newRow("P06") << neckBackToArmfoldFrontToNeckBack_M << "neck_back_to_armfold_front_to_neck_back";
- QTest::newRow("P07") << acrossBackCenterToArmfoldFrontToAcrossBackCenter_M << "across_back_center_to_armfold_front_to_across_back_center";
+ QTest::newRow("P07") << acrossBackCenterToArmfoldFrontToAcrossBackCenter_M
+ << "across_back_center_to_armfold_front_to_across_back_center";
QTest::newRow("P08") << neckBackToArmfoldFrontToHighbustBack_M << "neck_back_to_armfold_front_to_highbust_back";
QTest::newRow("P09") << armfoldToArmfoldBust_M << "armfold_to_armfold_bust";
QTest::newRow("P10") << armfoldToBustFront_M << "armfold_to_bust_front";