parent
68e3836510
commit
864d3568c0
|
@ -9,6 +9,7 @@
|
||||||
- [#927] Freeze prefix language on pattern/project creation.
|
- [#927] Freeze prefix language on pattern/project creation.
|
||||||
- [#929] New variable type: Separator.
|
- [#929] New variable type: Separator.
|
||||||
- Speed optimization for switching "In layout" state.
|
- Speed optimization for switching "In layout" state.
|
||||||
|
- [#932] 2nd version V passmarks.
|
||||||
|
|
||||||
# Version 0.6.2 (unreleased)
|
# Version 0.6.2 (unreleased)
|
||||||
- [#903] Bug in tool Cut Spline path.
|
- [#903] Bug in tool Cut Spline path.
|
||||||
|
|
|
@ -52,6 +52,7 @@
|
||||||
<file>schema/pattern/v0.7.12.xsd</file>
|
<file>schema/pattern/v0.7.12.xsd</file>
|
||||||
<file>schema/pattern/v0.7.13.xsd</file>
|
<file>schema/pattern/v0.7.13.xsd</file>
|
||||||
<file>schema/pattern/v0.8.0.xsd</file>
|
<file>schema/pattern/v0.8.0.xsd</file>
|
||||||
|
<file>schema/pattern/v0.8.1.xsd</file>
|
||||||
<file>schema/standard_measurements/v0.3.0.xsd</file>
|
<file>schema/standard_measurements/v0.3.0.xsd</file>
|
||||||
<file>schema/standard_measurements/v0.4.0.xsd</file>
|
<file>schema/standard_measurements/v0.4.0.xsd</file>
|
||||||
<file>schema/standard_measurements/v0.4.1.xsd</file>
|
<file>schema/standard_measurements/v0.4.1.xsd</file>
|
||||||
|
|
1110
src/libs/ifc/schema/pattern/v0.8.1.xsd
Normal file
1110
src/libs/ifc/schema/pattern/v0.8.1.xsd
Normal file
File diff suppressed because it is too large
Load Diff
|
@ -59,8 +59,8 @@ class QDomElement;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const QString VPatternConverter::PatternMinVerStr = QStringLiteral("0.1.4");
|
const QString VPatternConverter::PatternMinVerStr = QStringLiteral("0.1.4");
|
||||||
const QString VPatternConverter::PatternMaxVerStr = QStringLiteral("0.8.0");
|
const QString VPatternConverter::PatternMaxVerStr = QStringLiteral("0.8.1");
|
||||||
const QString VPatternConverter::CurrentSchema = QStringLiteral("://schema/pattern/v0.8.0.xsd");
|
const QString VPatternConverter::CurrentSchema = QStringLiteral("://schema/pattern/v0.8.1.xsd");
|
||||||
|
|
||||||
//VPatternConverter::PatternMinVer; // <== DON'T FORGET TO UPDATE TOO!!!!
|
//VPatternConverter::PatternMinVer; // <== DON'T FORGET TO UPDATE TOO!!!!
|
||||||
//VPatternConverter::PatternMaxVer; // <== DON'T FORGET TO UPDATE TOO!!!!
|
//VPatternConverter::PatternMaxVer; // <== DON'T FORGET TO UPDATE TOO!!!!
|
||||||
|
@ -230,7 +230,8 @@ QString VPatternConverter::XSDSchema(int ver) const
|
||||||
std::make_pair(FORMAT_VERSION(0, 7, 11), QStringLiteral("://schema/pattern/v0.7.11.xsd")),
|
std::make_pair(FORMAT_VERSION(0, 7, 11), QStringLiteral("://schema/pattern/v0.7.11.xsd")),
|
||||||
std::make_pair(FORMAT_VERSION(0, 7, 12), QStringLiteral("://schema/pattern/v0.7.12.xsd")),
|
std::make_pair(FORMAT_VERSION(0, 7, 12), QStringLiteral("://schema/pattern/v0.7.12.xsd")),
|
||||||
std::make_pair(FORMAT_VERSION(0, 7, 13), QStringLiteral("://schema/pattern/v0.7.13.xsd")),
|
std::make_pair(FORMAT_VERSION(0, 7, 13), QStringLiteral("://schema/pattern/v0.7.13.xsd")),
|
||||||
std::make_pair(FORMAT_VERSION(0, 8, 0), CurrentSchema)
|
std::make_pair(FORMAT_VERSION(0, 8, 0), QStringLiteral("://schema/pattern/v0.8.0.xsd")),
|
||||||
|
std::make_pair(FORMAT_VERSION(0, 8, 1), CurrentSchema)
|
||||||
};
|
};
|
||||||
|
|
||||||
if (schemas.contains(ver))
|
if (schemas.contains(ver))
|
||||||
|
@ -451,6 +452,10 @@ void VPatternConverter::ApplyPatches()
|
||||||
ValidateXML(XSDSchema(FORMAT_VERSION(0, 8, 0)), m_convertedFileName);
|
ValidateXML(XSDSchema(FORMAT_VERSION(0, 8, 0)), m_convertedFileName);
|
||||||
V_FALLTHROUGH
|
V_FALLTHROUGH
|
||||||
case (FORMAT_VERSION(0, 8, 0)):
|
case (FORMAT_VERSION(0, 8, 0)):
|
||||||
|
ToV0_8_1();
|
||||||
|
ValidateXML(XSDSchema(FORMAT_VERSION(0, 8, 1)), m_convertedFileName);
|
||||||
|
V_FALLTHROUGH
|
||||||
|
case (FORMAT_VERSION(0, 8, 1)):
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
InvalidVersion(m_ver);
|
InvalidVersion(m_ver);
|
||||||
|
@ -468,7 +473,7 @@ void VPatternConverter::DowngradeToCurrentMaxVersion()
|
||||||
bool VPatternConverter::IsReadOnly() const
|
bool VPatternConverter::IsReadOnly() const
|
||||||
{
|
{
|
||||||
// Check if attribute readOnly was not changed in file format
|
// Check if attribute readOnly was not changed in file format
|
||||||
Q_STATIC_ASSERT_X(VPatternConverter::PatternMaxVer == FORMAT_VERSION(0, 8, 0),
|
Q_STATIC_ASSERT_X(VPatternConverter::PatternMaxVer == FORMAT_VERSION(0, 8, 1),
|
||||||
"Check attribute readOnly.");
|
"Check attribute readOnly.");
|
||||||
|
|
||||||
// Possibly in future attribute readOnly will change position etc.
|
// Possibly in future attribute readOnly will change position etc.
|
||||||
|
@ -1038,6 +1043,16 @@ void VPatternConverter::ToV0_8_0()
|
||||||
Save();
|
Save();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VPatternConverter::ToV0_8_1()
|
||||||
|
{
|
||||||
|
// TODO. Delete if minimal supported version is 0.8.1
|
||||||
|
Q_STATIC_ASSERT_X(VPatternConverter::PatternMinVer < FORMAT_VERSION(0, 8, 1),
|
||||||
|
"Time to refactor the code.");
|
||||||
|
SetVersion(QStringLiteral("0.8.1"));
|
||||||
|
Save();
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void VPatternConverter::TagUnitToV0_2_0()
|
void VPatternConverter::TagUnitToV0_2_0()
|
||||||
{
|
{
|
||||||
|
|
|
@ -53,7 +53,7 @@ public:
|
||||||
static const QString PatternMaxVerStr;
|
static const QString PatternMaxVerStr;
|
||||||
static const QString CurrentSchema;
|
static const QString CurrentSchema;
|
||||||
static Q_DECL_CONSTEXPR const int PatternMinVer = FORMAT_VERSION(0, 1, 4);
|
static Q_DECL_CONSTEXPR const int PatternMinVer = FORMAT_VERSION(0, 1, 4);
|
||||||
static Q_DECL_CONSTEXPR const int PatternMaxVer = FORMAT_VERSION(0, 8, 0);
|
static Q_DECL_CONSTEXPR const int PatternMaxVer = FORMAT_VERSION(0, 8, 1);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual int MinVer() const override;
|
virtual int MinVer() const override;
|
||||||
|
@ -123,6 +123,7 @@ private:
|
||||||
void ToV0_7_12();
|
void ToV0_7_12();
|
||||||
void ToV0_7_13();
|
void ToV0_7_13();
|
||||||
void ToV0_8_0();
|
void ToV0_8_0();
|
||||||
|
void ToV0_8_1();
|
||||||
|
|
||||||
void TagUnitToV0_2_0();
|
void TagUnitToV0_2_0();
|
||||||
void TagIncrementToV0_2_0();
|
void TagIncrementToV0_2_0();
|
||||||
|
|
|
@ -495,6 +495,7 @@ const QString strThree = QStringLiteral("three");
|
||||||
|
|
||||||
Q_GLOBAL_STATIC_WITH_ARGS(const QString, strTMark, (QLatin1String("tMark")))
|
Q_GLOBAL_STATIC_WITH_ARGS(const QString, strTMark, (QLatin1String("tMark")))
|
||||||
Q_GLOBAL_STATIC_WITH_ARGS(const QString, strVMark, (QLatin1String("vMark")))
|
Q_GLOBAL_STATIC_WITH_ARGS(const QString, strVMark, (QLatin1String("vMark")))
|
||||||
|
Q_GLOBAL_STATIC_WITH_ARGS(const QString, strVMark2, (QLatin1String("vMark2")))
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
QString PassmarkLineTypeToString(PassmarkLineType type)
|
QString PassmarkLineTypeToString(PassmarkLineType type)
|
||||||
|
@ -511,6 +512,8 @@ QString PassmarkLineTypeToString(PassmarkLineType type)
|
||||||
return *strTMark;
|
return *strTMark;
|
||||||
case PassmarkLineType::VMark:
|
case PassmarkLineType::VMark:
|
||||||
return *strVMark;
|
return *strVMark;
|
||||||
|
case PassmarkLineType::VMark2:
|
||||||
|
return *strVMark2;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -521,7 +524,7 @@ QString PassmarkLineTypeToString(PassmarkLineType type)
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
PassmarkLineType StringToPassmarkLineType(const QString &value)
|
PassmarkLineType StringToPassmarkLineType(const QString &value)
|
||||||
{
|
{
|
||||||
const QStringList values = QStringList() << strOne << strTwo << strThree << *strTMark << *strVMark;
|
const QStringList values{strOne, strTwo, strThree, *strTMark, *strVMark, *strVMark2};
|
||||||
|
|
||||||
switch(values.indexOf(value))
|
switch(values.indexOf(value))
|
||||||
{
|
{
|
||||||
|
@ -535,6 +538,8 @@ PassmarkLineType StringToPassmarkLineType(const QString &value)
|
||||||
return PassmarkLineType::TMark;
|
return PassmarkLineType::TMark;
|
||||||
case 4: // strVMark
|
case 4: // strVMark
|
||||||
return PassmarkLineType::VMark;
|
return PassmarkLineType::VMark;
|
||||||
|
case 5: // strVMark2
|
||||||
|
return PassmarkLineType::VMark2;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -108,7 +108,8 @@ enum class PassmarkLineType : unsigned char
|
||||||
TwoLines,
|
TwoLines,
|
||||||
ThreeLines,
|
ThreeLines,
|
||||||
TMark,
|
TMark,
|
||||||
VMark
|
VMark,
|
||||||
|
VMark2
|
||||||
};
|
};
|
||||||
|
|
||||||
QString PassmarkLineTypeToString(PassmarkLineType type);
|
QString PassmarkLineTypeToString(PassmarkLineType type);
|
||||||
|
|
|
@ -196,7 +196,36 @@ QVector<QLineF> CreateVMarkPassmark(const QLineF &line)
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
QVector<QLineF> CreatePassmarkLines(PassmarkLineType lineType, PassmarkAngleType angleType, const QLineF &line)
|
QVector<QLineF> CreateVMark2Passmark(const QLineF &line, const QVector<QPointF> &seamAllowance)
|
||||||
|
{
|
||||||
|
QLineF l1 = QLineF(line.p2(), line.p1());
|
||||||
|
l1.setAngle(l1.angle() + 35);
|
||||||
|
|
||||||
|
QLineF l2 = QLineF(line.p2(), line.p1());
|
||||||
|
l2.setAngle(l2.angle() - 35);
|
||||||
|
|
||||||
|
auto FindIntersection = [seamAllowance](const QLineF &line)
|
||||||
|
{
|
||||||
|
QLineF testLine = line;
|
||||||
|
testLine.setLength(testLine.length()*10);
|
||||||
|
QVector<QPointF> intersections = VAbstractCurve::CurveIntersectLine(seamAllowance, testLine);
|
||||||
|
if (not intersections.isEmpty())
|
||||||
|
{
|
||||||
|
return QLineF(line.p1(), intersections.last());
|
||||||
|
}
|
||||||
|
|
||||||
|
return line;
|
||||||
|
};
|
||||||
|
|
||||||
|
QVector<QLineF> lines;
|
||||||
|
lines.append(FindIntersection(l1));
|
||||||
|
lines.append(FindIntersection(l2));
|
||||||
|
return lines;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
QVector<QLineF> CreatePassmarkLines(PassmarkLineType lineType, PassmarkAngleType angleType, const QLineF &line,
|
||||||
|
const QVector<QPointF> &seamAllowance)
|
||||||
{
|
{
|
||||||
QVector<QLineF> passmarksLines;
|
QVector<QLineF> passmarksLines;
|
||||||
|
|
||||||
|
@ -222,6 +251,9 @@ QVector<QLineF> CreatePassmarkLines(PassmarkLineType lineType, PassmarkAngleType
|
||||||
case PassmarkLineType::VMark:
|
case PassmarkLineType::VMark:
|
||||||
passmarksLines += CreateVMarkPassmark(line);
|
passmarksLines += CreateVMarkPassmark(line);
|
||||||
break;
|
break;
|
||||||
|
case PassmarkLineType::VMark2:
|
||||||
|
passmarksLines += CreateVMark2Passmark(line, seamAllowance);
|
||||||
|
break;
|
||||||
case PassmarkLineType::OneLine:
|
case PassmarkLineType::OneLine:
|
||||||
default:
|
default:
|
||||||
passmarksLines.append(line);
|
passmarksLines.append(line);
|
||||||
|
@ -239,6 +271,7 @@ QVector<QLineF> CreatePassmarkLines(PassmarkLineType lineType, PassmarkAngleType
|
||||||
case PassmarkLineType::TwoLines:
|
case PassmarkLineType::TwoLines:
|
||||||
case PassmarkLineType::ThreeLines:
|
case PassmarkLineType::ThreeLines:
|
||||||
case PassmarkLineType::VMark:
|
case PassmarkLineType::VMark:
|
||||||
|
case PassmarkLineType::VMark2:
|
||||||
default:
|
default:
|
||||||
passmarksLines.append(line);
|
passmarksLines.append(line);
|
||||||
break;
|
break;
|
||||||
|
@ -1309,6 +1342,8 @@ QVector<QLineF> VPiece::CreatePassmark(const QVector<VPieceNode> &path, int prev
|
||||||
passmarkData.passmarkLineType = path.at(passmarkIndex).GetPassmarkLineType();
|
passmarkData.passmarkLineType = path.at(passmarkIndex).GetPassmarkLineType();
|
||||||
passmarkData.passmarkAngleType = path.at(passmarkIndex).GetPassmarkAngleType();
|
passmarkData.passmarkAngleType = path.at(passmarkIndex).GetPassmarkAngleType();
|
||||||
|
|
||||||
|
const QVector<QPointF> mainPath = MainPathPoints(data);
|
||||||
|
|
||||||
if (not IsSeamAllowanceBuiltIn())
|
if (not IsSeamAllowanceBuiltIn())
|
||||||
{
|
{
|
||||||
// Because rollback cannot be calulated if passmark is not first point in main path we rotate it.
|
// Because rollback cannot be calulated if passmark is not first point in main path we rotate it.
|
||||||
|
@ -1327,12 +1362,12 @@ QVector<QLineF> VPiece::CreatePassmark(const QVector<VPieceNode> &path, int prev
|
||||||
&& path.at(passmarkIndex).GetPassmarkAngleType() != PassmarkAngleType::Intersection2OnlyRight
|
&& path.at(passmarkIndex).GetPassmarkAngleType() != PassmarkAngleType::Intersection2OnlyRight
|
||||||
&& path.at(passmarkIndex).IsShowSecondPassmark())
|
&& path.at(passmarkIndex).IsShowSecondPassmark())
|
||||||
{
|
{
|
||||||
lines += BuiltInSAPassmark(passmarkData);
|
lines += BuiltInSAPassmark(passmarkData, mainPath);
|
||||||
}
|
}
|
||||||
return lines;
|
return lines;
|
||||||
}
|
}
|
||||||
|
|
||||||
return BuiltInSAPassmark(passmarkData);
|
return BuiltInSAPassmark(passmarkData, mainPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -1381,7 +1416,7 @@ QVector<QLineF> VPiece::SAPassmark(const VPiecePassmarkData &passmarkData, const
|
||||||
line.setLength(qMin(width * VSAPoint::passmarkFactor, VSAPoint::maxPassmarkLength));
|
line.setLength(qMin(width * VSAPoint::passmarkFactor, VSAPoint::maxPassmarkLength));
|
||||||
|
|
||||||
passmarksLines += CreatePassmarkLines(passmarkData.passmarkLineType, passmarkData.passmarkAngleType,
|
passmarksLines += CreatePassmarkLines(passmarkData.passmarkLineType, passmarkData.passmarkAngleType,
|
||||||
line);
|
line, seamAllowance);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1404,7 +1439,8 @@ QVector<QLineF> VPiece::SAPassmark(const VPiecePassmarkData &passmarkData, const
|
||||||
{
|
{
|
||||||
QLineF line = QLineF(seamPassmarkSAPoint, passmarkData.passmarkSAPoint);
|
QLineF line = QLineF(seamPassmarkSAPoint, passmarkData.passmarkSAPoint);
|
||||||
line.setLength(passmarkData.passmarkSAPoint.PassmarkLength(passmarkData.saWidth));
|
line.setLength(passmarkData.passmarkSAPoint.PassmarkLength(passmarkData.saWidth));
|
||||||
passmarksLines += CreatePassmarkLines(passmarkData.passmarkLineType, passmarkData.passmarkAngleType, line);
|
passmarksLines += CreatePassmarkLines(passmarkData.passmarkLineType, passmarkData.passmarkAngleType, line,
|
||||||
|
seamAllowance);
|
||||||
}
|
}
|
||||||
else if (passmarkData.passmarkAngleType == PassmarkAngleType::Bisector)
|
else if (passmarkData.passmarkAngleType == PassmarkAngleType::Bisector)
|
||||||
{
|
{
|
||||||
|
@ -1457,7 +1493,7 @@ QVector<QLineF> VPiece::SAPassmark(const VPiecePassmarkData &passmarkData, const
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
QVector<QLineF> VPiece::BuiltInSAPassmark(const VPiecePassmarkData &passmarkData)
|
QVector<QLineF> VPiece::BuiltInSAPassmark(const VPiecePassmarkData &passmarkData, const QVector<QPointF> &mainPath)
|
||||||
{
|
{
|
||||||
QVector<QLineF> passmarksLines;
|
QVector<QLineF> passmarksLines;
|
||||||
|
|
||||||
|
@ -1467,7 +1503,8 @@ QVector<QLineF> VPiece::BuiltInSAPassmark(const VPiecePassmarkData &passmarkData
|
||||||
edge1.setAngle(edge1.angle() + edge1.angleTo(edge2)/2.);
|
edge1.setAngle(edge1.angle() + edge1.angleTo(edge2)/2.);
|
||||||
edge1.setLength(passmarkData.passmarkSAPoint.PassmarkLength(passmarkData.saWidth));
|
edge1.setLength(passmarkData.passmarkSAPoint.PassmarkLength(passmarkData.saWidth));
|
||||||
|
|
||||||
passmarksLines += CreatePassmarkLines(passmarkData.passmarkLineType, passmarkData.passmarkAngleType, edge1);
|
passmarksLines += CreatePassmarkLines(passmarkData.passmarkLineType, passmarkData.passmarkAngleType, edge1,
|
||||||
|
mainPath);
|
||||||
|
|
||||||
return passmarksLines;
|
return passmarksLines;
|
||||||
}
|
}
|
||||||
|
@ -1524,5 +1561,5 @@ QVector<QLineF> VPiece::PassmarkBisector(PassmarkStatus seamPassmarkType, const
|
||||||
edge1.setAngle(edge1.angle() + edge1.angleTo(edge2)/2.);
|
edge1.setAngle(edge1.angle() + edge1.angleTo(edge2)/2.);
|
||||||
edge1.setLength(passmarkData.passmarkSAPoint.PassmarkLength(passmarkData.saWidth));
|
edge1.setLength(passmarkData.passmarkSAPoint.PassmarkLength(passmarkData.saWidth));
|
||||||
|
|
||||||
return CreatePassmarkLines(passmarkData.passmarkLineType, passmarkData.passmarkAngleType, edge1);
|
return CreatePassmarkLines(passmarkData.passmarkLineType, passmarkData.passmarkAngleType, edge1, seamAllowance);
|
||||||
}
|
}
|
||||||
|
|
|
@ -181,7 +181,7 @@ private:
|
||||||
QVector<QLineF> CreatePassmark(const QVector<VPieceNode> &path, int previousIndex, int passmarkIndex, int nextIndex,
|
QVector<QLineF> CreatePassmark(const QVector<VPieceNode> &path, int previousIndex, int passmarkIndex, int nextIndex,
|
||||||
const VContainer *data) const;
|
const VContainer *data) const;
|
||||||
|
|
||||||
static QVector<QLineF> BuiltInSAPassmark(const VPiecePassmarkData &passmarkData);
|
static QVector<QLineF> BuiltInSAPassmark(const VPiecePassmarkData &passmarkData, const QVector<QPointF> &mainPath);
|
||||||
static QVector<QLineF> PassmarkBisector(PassmarkStatus seamPassmarkType, const VPiecePassmarkData &passmarkData,
|
static QVector<QLineF> PassmarkBisector(PassmarkStatus seamPassmarkType, const VPiecePassmarkData &passmarkData,
|
||||||
const QPointF &seamPassmarkSAPoint, const QVector<QPointF>& seamAllowance);
|
const QPointF &seamPassmarkSAPoint, const QVector<QPointF>& seamAllowance);
|
||||||
|
|
||||||
|
|
|
@ -689,10 +689,13 @@ QString DialogTool::GetNodeName(const VPieceNode &node, bool showDetails) const
|
||||||
name += QLatin1Literal("|||");
|
name += QLatin1Literal("|||");
|
||||||
break;
|
break;
|
||||||
case PassmarkLineType::TMark:
|
case PassmarkLineType::TMark:
|
||||||
name += QString("┴");
|
name += QStringLiteral("┴");
|
||||||
break;
|
break;
|
||||||
case PassmarkLineType::VMark:
|
case PassmarkLineType::VMark:
|
||||||
name += QLatin1Char('^');
|
name += QStringLiteral("⊼");
|
||||||
|
break;
|
||||||
|
case PassmarkLineType::VMark2:
|
||||||
|
name += QStringLiteral("⊽");
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -486,6 +486,7 @@ void DialogPiecePath::PassmarkChanged(int index)
|
||||||
ui->radioButtonThreeLines->setDisabled(true);
|
ui->radioButtonThreeLines->setDisabled(true);
|
||||||
ui->radioButtonTMark->setDisabled(true);
|
ui->radioButtonTMark->setDisabled(true);
|
||||||
ui->radioButtonVMark->setDisabled(true);
|
ui->radioButtonVMark->setDisabled(true);
|
||||||
|
ui->radioButtonVMark2->setDisabled(true);
|
||||||
|
|
||||||
ui->radioButtonStraightforward->setDisabled(true);
|
ui->radioButtonStraightforward->setDisabled(true);
|
||||||
ui->radioButtonBisector->setDisabled(true);
|
ui->radioButtonBisector->setDisabled(true);
|
||||||
|
@ -516,6 +517,7 @@ void DialogPiecePath::PassmarkChanged(int index)
|
||||||
ui->radioButtonThreeLines->setEnabled(true);
|
ui->radioButtonThreeLines->setEnabled(true);
|
||||||
ui->radioButtonTMark->setEnabled(true);
|
ui->radioButtonTMark->setEnabled(true);
|
||||||
ui->radioButtonVMark->setEnabled(true);
|
ui->radioButtonVMark->setEnabled(true);
|
||||||
|
ui->radioButtonVMark2->setEnabled(true);
|
||||||
|
|
||||||
switch(node.GetPassmarkLineType())
|
switch(node.GetPassmarkLineType())
|
||||||
{
|
{
|
||||||
|
@ -534,6 +536,9 @@ void DialogPiecePath::PassmarkChanged(int index)
|
||||||
case PassmarkLineType::VMark:
|
case PassmarkLineType::VMark:
|
||||||
ui->radioButtonVMark->setChecked(true);
|
ui->radioButtonVMark->setChecked(true);
|
||||||
break;
|
break;
|
||||||
|
case PassmarkLineType::VMark2:
|
||||||
|
ui->radioButtonVMark2->setChecked(true);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -642,6 +647,10 @@ void DialogPiecePath::PassmarkLineTypeChanged(int id)
|
||||||
{
|
{
|
||||||
lineType = PassmarkLineType::VMark;
|
lineType = PassmarkLineType::VMark;
|
||||||
}
|
}
|
||||||
|
else if (id == ui->buttonGroupMarkType->id(ui->radioButtonVMark2))
|
||||||
|
{
|
||||||
|
lineType = PassmarkLineType::VMark2;
|
||||||
|
}
|
||||||
|
|
||||||
rowNode.SetPassmarkLineType(lineType);
|
rowNode.SetPassmarkLineType(lineType);
|
||||||
rowItem->setData(Qt::UserRole, QVariant::fromValue(rowNode));
|
rowItem->setData(Qt::UserRole, QVariant::fromValue(rowNode));
|
||||||
|
|
|
@ -992,6 +992,9 @@
|
||||||
<property name="enabled">
|
<property name="enabled">
|
||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Acute angle that looks inside of piece</string>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>V mark</string>
|
<string>V mark</string>
|
||||||
</property>
|
</property>
|
||||||
|
@ -1000,6 +1003,22 @@
|
||||||
</attribute>
|
</attribute>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QRadioButton" name="radioButtonVMark2">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Acute angle that looks outside of piece</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>V mark 2</string>
|
||||||
|
</property>
|
||||||
|
<attribute name="buttonGroup">
|
||||||
|
<string notr="true">buttonGroupMarkType</string>
|
||||||
|
</attribute>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
@ -1430,7 +1449,7 @@
|
||||||
</connection>
|
</connection>
|
||||||
</connections>
|
</connections>
|
||||||
<buttongroups>
|
<buttongroups>
|
||||||
<buttongroup name="buttonGroupAngleType"/>
|
|
||||||
<buttongroup name="buttonGroupMarkType"/>
|
<buttongroup name="buttonGroupMarkType"/>
|
||||||
|
<buttongroup name="buttonGroupAngleType"/>
|
||||||
</buttongroups>
|
</buttongroups>
|
||||||
</ui>
|
</ui>
|
||||||
|
|
|
@ -998,6 +998,7 @@ void DialogSeamAllowance::PassmarkChanged(int index)
|
||||||
uiTabPassmarks->radioButtonThreeLines->setDisabled(true);
|
uiTabPassmarks->radioButtonThreeLines->setDisabled(true);
|
||||||
uiTabPassmarks->radioButtonTMark->setDisabled(true);
|
uiTabPassmarks->radioButtonTMark->setDisabled(true);
|
||||||
uiTabPassmarks->radioButtonVMark->setDisabled(true);
|
uiTabPassmarks->radioButtonVMark->setDisabled(true);
|
||||||
|
uiTabPassmarks->radioButtonVMark2->setDisabled(true);
|
||||||
|
|
||||||
uiTabPassmarks->radioButtonStraightforward->setDisabled(true);
|
uiTabPassmarks->radioButtonStraightforward->setDisabled(true);
|
||||||
uiTabPassmarks->radioButtonBisector->setDisabled(true);
|
uiTabPassmarks->radioButtonBisector->setDisabled(true);
|
||||||
|
@ -1028,6 +1029,7 @@ void DialogSeamAllowance::PassmarkChanged(int index)
|
||||||
uiTabPassmarks->radioButtonThreeLines->setEnabled(true);
|
uiTabPassmarks->radioButtonThreeLines->setEnabled(true);
|
||||||
uiTabPassmarks->radioButtonTMark->setEnabled(true);
|
uiTabPassmarks->radioButtonTMark->setEnabled(true);
|
||||||
uiTabPassmarks->radioButtonVMark->setEnabled(true);
|
uiTabPassmarks->radioButtonVMark->setEnabled(true);
|
||||||
|
uiTabPassmarks->radioButtonVMark2->setEnabled(true);
|
||||||
|
|
||||||
switch(node.GetPassmarkLineType())
|
switch(node.GetPassmarkLineType())
|
||||||
{
|
{
|
||||||
|
@ -1046,6 +1048,9 @@ void DialogSeamAllowance::PassmarkChanged(int index)
|
||||||
case PassmarkLineType::VMark:
|
case PassmarkLineType::VMark:
|
||||||
uiTabPassmarks->radioButtonVMark->setChecked(true);
|
uiTabPassmarks->radioButtonVMark->setChecked(true);
|
||||||
break;
|
break;
|
||||||
|
case PassmarkLineType::VMark2:
|
||||||
|
uiTabPassmarks->radioButtonVMark2->setChecked(true);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1442,6 +1447,10 @@ void DialogSeamAllowance::PassmarkLineTypeChanged(int id)
|
||||||
{
|
{
|
||||||
lineType = PassmarkLineType::VMark;
|
lineType = PassmarkLineType::VMark;
|
||||||
}
|
}
|
||||||
|
else if (id == uiTabPassmarks->buttonGroupLineType->id(uiTabPassmarks->radioButtonVMark2))
|
||||||
|
{
|
||||||
|
lineType = PassmarkLineType::VMark2;
|
||||||
|
}
|
||||||
|
|
||||||
rowNode.SetPassmarkLineType(lineType);
|
rowNode.SetPassmarkLineType(lineType);
|
||||||
rowItem->setData(Qt::UserRole, QVariant::fromValue(rowNode));
|
rowItem->setData(Qt::UserRole, QVariant::fromValue(rowNode));
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>352</width>
|
<width>352</width>
|
||||||
<height>567</height>
|
<height>594</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
|
@ -25,7 +25,7 @@
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>332</width>
|
<width>332</width>
|
||||||
<height>547</height>
|
<height>574</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||||
|
@ -112,6 +112,9 @@
|
||||||
<property name="enabled">
|
<property name="enabled">
|
||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Acute angle that looks intside of piece</string>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>V mark</string>
|
<string>V mark</string>
|
||||||
</property>
|
</property>
|
||||||
|
@ -120,6 +123,22 @@
|
||||||
</attribute>
|
</attribute>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QRadioButton" name="radioButtonVMark2">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Acute angle that looks outside of piece</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>V mark 2</string>
|
||||||
|
</property>
|
||||||
|
<attribute name="buttonGroup">
|
||||||
|
<string notr="true">buttonGroupLineType</string>
|
||||||
|
</attribute>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
@ -289,7 +308,7 @@
|
||||||
<resources/>
|
<resources/>
|
||||||
<connections/>
|
<connections/>
|
||||||
<buttongroups>
|
<buttongroups>
|
||||||
<buttongroup name="buttonGroupAngleType"/>
|
|
||||||
<buttongroup name="buttonGroupLineType"/>
|
<buttongroup name="buttonGroupLineType"/>
|
||||||
|
<buttongroup name="buttonGroupAngleType"/>
|
||||||
</buttongroups>
|
</buttongroups>
|
||||||
</ui>
|
</ui>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user