diff --git a/src/app/valentina/dialogs/dialogpatternproperties.cpp b/src/app/valentina/dialogs/dialogpatternproperties.cpp
index 1aafcf101..d56595dad 100644
--- a/src/app/valentina/dialogs/dialogpatternproperties.cpp
+++ b/src/app/valentina/dialogs/dialogpatternproperties.cpp
@@ -173,6 +173,7 @@ DialogPatternProperties::DialogPatternProperties(const QString &filePath, VPatte
ui->labelCreationDate->setText(QDate::currentDate().toString(Qt::SystemLocaleLongDate));
ui->lineEditSize->setText(doc->GetPatternSize());
ui->checkBoxShowDate->setChecked(doc->IsDateVisible());
+ ui->checkBoxShowMeasurements->setChecked(doc->IsMeasurementsVisible());
connect(ui->lineEditPatternName, &QLineEdit::editingFinished, this, &DialogPatternProperties::GeneralInfoChanged);
connect(ui->lineEditPatternNumber, &QLineEdit::editingFinished, this, &DialogPatternProperties::GeneralInfoChanged);
@@ -561,6 +562,7 @@ void DialogPatternProperties::SaveGeneralInfo()
doc->SetCustomerName(ui->lineEditCustomerName->text());
doc->SetPatternSize(ui->lineEditSize->text());
doc->SetDateVisible(ui->checkBoxShowDate->isChecked());
+ doc->SetMesurementsVisible(ui->checkBoxShowMeasurements->isChecked());
}
//---------------------------------------------------------------------------------------------------------------------
diff --git a/src/app/valentina/dialogs/dialogpatternproperties.ui b/src/app/valentina/dialogs/dialogpatternproperties.ui
index 7521f8945..69e597dfc 100644
--- a/src/app/valentina/dialogs/dialogpatternproperties.ui
+++ b/src/app/valentina/dialogs/dialogpatternproperties.ui
@@ -1053,7 +1053,7 @@
10
10
401
- 221
+ 241
@@ -1068,7 +1068,11 @@
-
-
+
+
+ 30
+
+
-
@@ -1078,7 +1082,11 @@
-
-
+
+
+ 30
+
+
-
@@ -1088,7 +1096,11 @@
-
-
+
+
+ 30
+
+
-
@@ -1098,7 +1110,11 @@
-
-
+
+
+ 30
+
+
-
@@ -1122,9 +1138,20 @@
-
-
+
+
+ 30
+
+
- -
+
-
+
+
+ Show measurements
+
+
+
+ -
Show date of creation
diff --git a/src/app/valentina/xml/vpattern.cpp b/src/app/valentina/xml/vpattern.cpp
index 84aeea1d2..08bcb6c66 100644
--- a/src/app/valentina/xml/vpattern.cpp
+++ b/src/app/valentina/xml/vpattern.cpp
@@ -134,7 +134,7 @@ void VPattern::Parse(const Document &parse)
QStringList tags = QStringList() << TagDraw << TagIncrements << TagAuthor << TagDescription << TagNotes
<< TagMeasurements << TagVersion << TagGradation << TagImage << TagUnit
<< TagPatternName << TagPatternNum << TagCompanyName << TagCustomerName
- << TagSize << TagShowDate;
+ << TagSize << TagShowDate << TagShowMeasurements;
PrepareForParse(parse);
QDomNode domNode = documentElement().firstChild();
while (domNode.isNull() == false)
@@ -212,6 +212,9 @@ void VPattern::Parse(const Document &parse)
case 15:
qCDebug(vXML, "Show creation date");
break;
+ case 16:
+ qCDebug(vXML, "Show creation measurements");
+ break;
default:
qCDebug(vXML, "Wrong tag name %s", qUtf8Printable(domElement.tagName()));
break;
diff --git a/src/libs/ifc/schema/pattern/v0.3.3.xsd b/src/libs/ifc/schema/pattern/v0.3.3.xsd
index 2b7992a7d..186f4cc6e 100644
--- a/src/libs/ifc/schema/pattern/v0.3.3.xsd
+++ b/src/libs/ifc/schema/pattern/v0.3.3.xsd
@@ -79,6 +79,7 @@
+
diff --git a/src/libs/ifc/xml/vabstractpattern.cpp b/src/libs/ifc/xml/vabstractpattern.cpp
index 46b85959e..5818b4aaa 100644
--- a/src/libs/ifc/xml/vabstractpattern.cpp
+++ b/src/libs/ifc/xml/vabstractpattern.cpp
@@ -34,98 +34,98 @@
#include "../exception/vexceptionobjecterror.h"
#include "../vtools/tools/vdatatool.h"
-const QString VAbstractPattern::TagPattern = QStringLiteral("pattern");
-const QString VAbstractPattern::TagCalculation = QStringLiteral("calculation");
-const QString VAbstractPattern::TagModeling = QStringLiteral("modeling");
-const QString VAbstractPattern::TagDetails = QStringLiteral("details");
-const QString VAbstractPattern::TagDetail = QStringLiteral("detail");
-const QString VAbstractPattern::TagAuthor = QStringLiteral("author");
-const QString VAbstractPattern::TagDescription = QStringLiteral("description");
-const QString VAbstractPattern::TagNotes = QStringLiteral("notes");
-const QString VAbstractPattern::TagImage = QStringLiteral("image");
-const QString VAbstractPattern::TagMeasurements = QStringLiteral("measurements");
-const QString VAbstractPattern::TagIncrements = QStringLiteral("increments");
-const QString VAbstractPattern::TagIncrement = QStringLiteral("increment");
-const QString VAbstractPattern::TagDraw = QStringLiteral("draw");
-const QString VAbstractPattern::TagGroups = QStringLiteral("groups");
-const QString VAbstractPattern::TagGroup = QStringLiteral("group");
-const QString VAbstractPattern::TagGroupItem = QStringLiteral("item");
-const QString VAbstractPattern::TagPoint = QStringLiteral("point");
-const QString VAbstractPattern::TagLine = QStringLiteral("line");
-const QString VAbstractPattern::TagSpline = QStringLiteral("spline");
-const QString VAbstractPattern::TagArc = QStringLiteral("arc");
-const QString VAbstractPattern::TagTools = QStringLiteral("tools");
-const QString VAbstractPattern::TagOperation = QStringLiteral("operation");
-const QString VAbstractPattern::TagGradation = QStringLiteral("gradation");
-const QString VAbstractPattern::TagHeights = QStringLiteral("heights");
-const QString VAbstractPattern::TagSizes = QStringLiteral("sizes");
-const QString VAbstractPattern::TagUnit = QStringLiteral("unit");
-const QString VAbstractPattern::TagData = QStringLiteral("data");
-const QString VAbstractPattern::TagPatternInfo = QStringLiteral("patternInfo");
-const QString VAbstractPattern::TagMCP = QStringLiteral("mcp");
-const QString VAbstractPattern::TagPatternName = QStringLiteral("patternName");
-const QString VAbstractPattern::TagPatternNum = QStringLiteral("patternNumber");
-const QString VAbstractPattern::TagCustomerName = QStringLiteral("customer");
-const QString VAbstractPattern::TagCompanyName = QStringLiteral("company");
-const QString VAbstractPattern::TagSize = QStringLiteral("size");
-const QString VAbstractPattern::TagShowDate = QStringLiteral("showDate");
+const QString VAbstractPattern::TagPattern = QStringLiteral("pattern");
+const QString VAbstractPattern::TagCalculation = QStringLiteral("calculation");
+const QString VAbstractPattern::TagModeling = QStringLiteral("modeling");
+const QString VAbstractPattern::TagDetails = QStringLiteral("details");
+const QString VAbstractPattern::TagDetail = QStringLiteral("detail");
+const QString VAbstractPattern::TagAuthor = QStringLiteral("author");
+const QString VAbstractPattern::TagDescription = QStringLiteral("description");
+const QString VAbstractPattern::TagNotes = QStringLiteral("notes");
+const QString VAbstractPattern::TagImage = QStringLiteral("image");
+const QString VAbstractPattern::TagMeasurements = QStringLiteral("measurements");
+const QString VAbstractPattern::TagIncrements = QStringLiteral("increments");
+const QString VAbstractPattern::TagIncrement = QStringLiteral("increment");
+const QString VAbstractPattern::TagDraw = QStringLiteral("draw");
+const QString VAbstractPattern::TagGroups = QStringLiteral("groups");
+const QString VAbstractPattern::TagGroup = QStringLiteral("group");
+const QString VAbstractPattern::TagGroupItem = QStringLiteral("item");
+const QString VAbstractPattern::TagPoint = QStringLiteral("point");
+const QString VAbstractPattern::TagLine = QStringLiteral("line");
+const QString VAbstractPattern::TagSpline = QStringLiteral("spline");
+const QString VAbstractPattern::TagArc = QStringLiteral("arc");
+const QString VAbstractPattern::TagTools = QStringLiteral("tools");
+const QString VAbstractPattern::TagOperation = QStringLiteral("operation");
+const QString VAbstractPattern::TagGradation = QStringLiteral("gradation");
+const QString VAbstractPattern::TagHeights = QStringLiteral("heights");
+const QString VAbstractPattern::TagSizes = QStringLiteral("sizes");
+const QString VAbstractPattern::TagUnit = QStringLiteral("unit");
+const QString VAbstractPattern::TagData = QStringLiteral("data");
+const QString VAbstractPattern::TagPatternInfo = QStringLiteral("patternInfo");
+const QString VAbstractPattern::TagMCP = QStringLiteral("mcp");
+const QString VAbstractPattern::TagPatternName = QStringLiteral("patternName");
+const QString VAbstractPattern::TagPatternNum = QStringLiteral("patternNumber");
+const QString VAbstractPattern::TagCustomerName = QStringLiteral("customer");
+const QString VAbstractPattern::TagCompanyName = QStringLiteral("company");
+const QString VAbstractPattern::TagSize = QStringLiteral("size");
+const QString VAbstractPattern::TagShowDate = QStringLiteral("showDate");
+const QString VAbstractPattern::TagShowMeasurements = QStringLiteral("showMeasurements");
+const QString VAbstractPattern::AttrName = QStringLiteral("name");
+const QString VAbstractPattern::AttrVisible = QStringLiteral("visible");
+const QString VAbstractPattern::AttrObject = QStringLiteral("object");
+const QString VAbstractPattern::AttrTool = QStringLiteral("tool");
+const QString VAbstractPattern::AttrType = QStringLiteral("type");
+const QString VAbstractPattern::AttrLetter = QStringLiteral("letter");
+const QString VAbstractPattern::AttrMaterial = QStringLiteral("material");
+const QString VAbstractPattern::AttrUserDefined = QStringLiteral("userDef");
+const QString VAbstractPattern::AttrCutNumber = QStringLiteral("cutNumber");
+const QString VAbstractPattern::AttrPlacement = QStringLiteral("placement");
-const QString VAbstractPattern::AttrName = QStringLiteral("name");
-const QString VAbstractPattern::AttrVisible = QStringLiteral("visible");
-const QString VAbstractPattern::AttrObject = QStringLiteral("object");
-const QString VAbstractPattern::AttrTool = QStringLiteral("tool");
-const QString VAbstractPattern::AttrType = QStringLiteral("type");
-const QString VAbstractPattern::AttrLetter = QStringLiteral("letter");
-const QString VAbstractPattern::AttrMaterial = QStringLiteral("material");
-const QString VAbstractPattern::AttrUserDefined = QStringLiteral("userDef");
-const QString VAbstractPattern::AttrCutNumber = QStringLiteral("cutNumber");
-const QString VAbstractPattern::AttrPlacement = QStringLiteral("placement");
+const QString VAbstractPattern::AttrAll = QStringLiteral("all");
-const QString VAbstractPattern::AttrAll = QStringLiteral("all");
+const QString VAbstractPattern::AttrH92 = QStringLiteral("h92");
+const QString VAbstractPattern::AttrH98 = QStringLiteral("h98");
+const QString VAbstractPattern::AttrH104 = QStringLiteral("h104");
+const QString VAbstractPattern::AttrH110 = QStringLiteral("h110");
+const QString VAbstractPattern::AttrH116 = QStringLiteral("h116");
+const QString VAbstractPattern::AttrH122 = QStringLiteral("h122");
+const QString VAbstractPattern::AttrH128 = QStringLiteral("h128");
+const QString VAbstractPattern::AttrH134 = QStringLiteral("h134");
+const QString VAbstractPattern::AttrH140 = QStringLiteral("h140");
+const QString VAbstractPattern::AttrH146 = QStringLiteral("h146");
+const QString VAbstractPattern::AttrH152 = QStringLiteral("h152");
+const QString VAbstractPattern::AttrH158 = QStringLiteral("h158");
+const QString VAbstractPattern::AttrH164 = QStringLiteral("h164");
+const QString VAbstractPattern::AttrH170 = QStringLiteral("h170");
+const QString VAbstractPattern::AttrH176 = QStringLiteral("h176");
+const QString VAbstractPattern::AttrH182 = QStringLiteral("h182");
+const QString VAbstractPattern::AttrH188 = QStringLiteral("h188");
+const QString VAbstractPattern::AttrH194 = QStringLiteral("h194");
-const QString VAbstractPattern::AttrH92 = QStringLiteral("h92");
-const QString VAbstractPattern::AttrH98 = QStringLiteral("h98");
-const QString VAbstractPattern::AttrH104 = QStringLiteral("h104");
-const QString VAbstractPattern::AttrH110 = QStringLiteral("h110");
-const QString VAbstractPattern::AttrH116 = QStringLiteral("h116");
-const QString VAbstractPattern::AttrH122 = QStringLiteral("h122");
-const QString VAbstractPattern::AttrH128 = QStringLiteral("h128");
-const QString VAbstractPattern::AttrH134 = QStringLiteral("h134");
-const QString VAbstractPattern::AttrH140 = QStringLiteral("h140");
-const QString VAbstractPattern::AttrH146 = QStringLiteral("h146");
-const QString VAbstractPattern::AttrH152 = QStringLiteral("h152");
-const QString VAbstractPattern::AttrH158 = QStringLiteral("h158");
-const QString VAbstractPattern::AttrH164 = QStringLiteral("h164");
-const QString VAbstractPattern::AttrH170 = QStringLiteral("h170");
-const QString VAbstractPattern::AttrH176 = QStringLiteral("h176");
-const QString VAbstractPattern::AttrH182 = QStringLiteral("h182");
-const QString VAbstractPattern::AttrH188 = QStringLiteral("h188");
-const QString VAbstractPattern::AttrH194 = QStringLiteral("h194");
+const QString VAbstractPattern::AttrS22 = QStringLiteral("s22");
+const QString VAbstractPattern::AttrS24 = QStringLiteral("s24");
+const QString VAbstractPattern::AttrS26 = QStringLiteral("s26");
+const QString VAbstractPattern::AttrS28 = QStringLiteral("s28");
+const QString VAbstractPattern::AttrS30 = QStringLiteral("s30");
+const QString VAbstractPattern::AttrS32 = QStringLiteral("s32");
+const QString VAbstractPattern::AttrS34 = QStringLiteral("s34");
+const QString VAbstractPattern::AttrS36 = QStringLiteral("s36");
+const QString VAbstractPattern::AttrS38 = QStringLiteral("s38");
+const QString VAbstractPattern::AttrS40 = QStringLiteral("s40");
+const QString VAbstractPattern::AttrS42 = QStringLiteral("s42");
+const QString VAbstractPattern::AttrS44 = QStringLiteral("s44");
+const QString VAbstractPattern::AttrS46 = QStringLiteral("s46");
+const QString VAbstractPattern::AttrS48 = QStringLiteral("s48");
+const QString VAbstractPattern::AttrS50 = QStringLiteral("s50");
+const QString VAbstractPattern::AttrS52 = QStringLiteral("s52");
+const QString VAbstractPattern::AttrS54 = QStringLiteral("s54");
+const QString VAbstractPattern::AttrS56 = QStringLiteral("s56");
-const QString VAbstractPattern::AttrS22 = QStringLiteral("s22");
-const QString VAbstractPattern::AttrS24 = QStringLiteral("s24");
-const QString VAbstractPattern::AttrS26 = QStringLiteral("s26");
-const QString VAbstractPattern::AttrS28 = QStringLiteral("s28");
-const QString VAbstractPattern::AttrS30 = QStringLiteral("s30");
-const QString VAbstractPattern::AttrS32 = QStringLiteral("s32");
-const QString VAbstractPattern::AttrS34 = QStringLiteral("s34");
-const QString VAbstractPattern::AttrS36 = QStringLiteral("s36");
-const QString VAbstractPattern::AttrS38 = QStringLiteral("s38");
-const QString VAbstractPattern::AttrS40 = QStringLiteral("s40");
-const QString VAbstractPattern::AttrS42 = QStringLiteral("s42");
-const QString VAbstractPattern::AttrS44 = QStringLiteral("s44");
-const QString VAbstractPattern::AttrS46 = QStringLiteral("s46");
-const QString VAbstractPattern::AttrS48 = QStringLiteral("s48");
-const QString VAbstractPattern::AttrS50 = QStringLiteral("s50");
-const QString VAbstractPattern::AttrS52 = QStringLiteral("s52");
-const QString VAbstractPattern::AttrS54 = QStringLiteral("s54");
-const QString VAbstractPattern::AttrS56 = QStringLiteral("s56");
-
-const QString VAbstractPattern::AttrCustom = QStringLiteral("custom");
-const QString VAbstractPattern::AttrDefHeight = QStringLiteral("defHeight");
-const QString VAbstractPattern::AttrDefSize = QStringLiteral("defSize");
-const QString VAbstractPattern::AttrExtension = QStringLiteral("extension");
+const QString VAbstractPattern::AttrCustom = QStringLiteral("custom");
+const QString VAbstractPattern::AttrDefHeight = QStringLiteral("defHeight");
+const QString VAbstractPattern::AttrDefSize = QStringLiteral("defSize");
+const QString VAbstractPattern::AttrExtension = QStringLiteral("extension");
const QString VAbstractPattern::IncrementName = QStringLiteral("name");
const QString VAbstractPattern::IncrementFormula = QStringLiteral("formula");
@@ -1085,6 +1085,21 @@ void VAbstractPattern::SetDateVisible(bool bVisible)
emit patternChanged(false);
}
+//---------------------------------------------------------------------------------------------------------------------
+bool VAbstractPattern::IsMeasurementsVisible() const
+{
+ return UniqueTagText(TagShowMeasurements) == trueStr;
+}
+
+//---------------------------------------------------------------------------------------------------------------------
+void VAbstractPattern::SetMesurementsVisible(bool bVisible)
+{
+ CheckTagExists(TagShowMeasurements);
+ setTagText(TagShowMeasurements, bVisible == true? trueStr : falseStr);
+ modified = true;
+ emit patternChanged(false);
+}
+
//---------------------------------------------------------------------------------------------------------------------
QString VAbstractPattern::GetImage() const
{
@@ -1199,7 +1214,7 @@ QDomElement VAbstractPattern::CheckTagExists(const QString &tag)
{
const QStringList tags = QStringList() << TagUnit << TagImage << TagAuthor << TagDescription << TagNotes
<< TagGradation << TagPatternName << TagPatternNum << TagCompanyName
- << TagCustomerName << TagSize << TagShowDate;
+ << TagCustomerName << TagSize << TagShowDate << TagShowMeasurements;
switch (tags.indexOf(tag))
{
case 0: //TagUnit
@@ -1270,6 +1285,11 @@ QDomElement VAbstractPattern::CheckTagExists(const QString &tag)
element = createElement(TagShowDate);
break;
}
+ case 12: // TagShowMeasurements
+ {
+ element = createElement(TagShowMeasurements);
+ break;
+ }
default:
{
diff --git a/src/libs/ifc/xml/vabstractpattern.h b/src/libs/ifc/xml/vabstractpattern.h
index 18c55c313..873b6d1b9 100644
--- a/src/libs/ifc/xml/vabstractpattern.h
+++ b/src/libs/ifc/xml/vabstractpattern.h
@@ -120,6 +120,8 @@ public:
void SetPatternSize(const QString &qsSize);
bool IsDateVisible() const;
void SetDateVisible(bool bVisible);
+ bool IsMeasurementsVisible() const;
+ void SetMesurementsVisible(bool bVisible);
QString GetImage() const;
QString GetImageExtension() const;
@@ -178,6 +180,7 @@ public:
static const QString TagCustomerName;
static const QString TagSize;
static const QString TagShowDate;
+ static const QString TagShowMeasurements;
static const QString AttrName;
static const QString AttrVisible;
diff --git a/src/libs/vlayout/vtextmanager.cpp b/src/libs/vlayout/vtextmanager.cpp
index 9a996b16c..02c2cf38b 100644
--- a/src/libs/vlayout/vtextmanager.cpp
+++ b/src/libs/vlayout/vtextmanager.cpp
@@ -141,6 +141,11 @@ bool VTextManager::IsBigEnough(qreal fW, qreal fH, int iFontSize)
QStringList qslLines = SplitString(tlOut.m_qsText, fW, fm);
for (int iL = 0; iL < qslLines.count(); ++iL)
{
+ // check if every line fits within the label width
+ if (fm.width(qslLines[iL]) + 2*GetSpacing() > fW)
+ {
+ return false;
+ }
tlOut.m_qsText = qslLines[iL];
m_liOutput << tlOut;
iY += tlOut.m_iHeight + GetSpacing();
@@ -275,6 +280,15 @@ void VTextManager::Update(const VAbstractPattern *pDoc)
tl.m_iFontSize = 0;
AddLine(tl);
}
+ // Measurements
+ tl.m_qsText = pDoc->MPath();
+ if (tl.m_qsText.isEmpty() == false && pDoc->IsMeasurementsVisible() == true)
+ {
+ tl.m_eFontWeight = QFont::Normal;
+ tl.m_eStyle = QFont::StyleNormal;
+ tl.m_iFontSize = 0;
+ AddLine(tl);
+ }
// Date
QDate date;
if (pDoc->IsDateVisible() == true)
@@ -317,7 +331,10 @@ QStringList VTextManager::SplitString(const QString &qs, qreal fW, const QFontMe
if (fm.width(qsCurrent + qslWords[i]) > fW)
{
// if not, add the current line into the list of text lines
- qslLines << qsCurrent;
+ if (qsCurrent.isEmpty() == false)
+ {
+ qslLines << qsCurrent;
+ }
// and set the current line to contain the current word
qsCurrent = qslWords[i];
}