Fix export of pattern recipe.
This commit is contained in:
parent
8d36b8329a
commit
dc350ae0e2
|
@ -1,3 +1,6 @@
|
||||||
|
# Version 0.7.42 (unreleased)
|
||||||
|
- Fix export of pattern recipe.
|
||||||
|
|
||||||
# Version 0.7.41 Dec 4, 2020
|
# Version 0.7.41 Dec 4, 2020
|
||||||
- Bug fixes.
|
- Bug fixes.
|
||||||
- Improve canceling nesting.
|
- Improve canceling nesting.
|
||||||
|
|
|
@ -4768,7 +4768,7 @@ void MainWindow::CreateActions()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
VPatternRecipe recipe(pattern, doc);
|
VPatternRecipe recipe(doc);
|
||||||
QString error;
|
QString error;
|
||||||
if (not recipe.SaveDocument(fileName, error))
|
if (not recipe.SaveDocument(fileName, error))
|
||||||
{
|
{
|
||||||
|
|
|
@ -347,6 +347,41 @@ VContainer VPattern::GetCompleteData() const
|
||||||
return lastData;
|
return lastData;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
VContainer VPattern::GetCompletePPData(const QString &name) const
|
||||||
|
{
|
||||||
|
const int countPP = CountPP();
|
||||||
|
if (countPP <= 0 || history.isEmpty() || tools.isEmpty())
|
||||||
|
{
|
||||||
|
return (data != nullptr ? *data : VContainer(nullptr, nullptr, VContainer::UniqueNamespace()));
|
||||||
|
}
|
||||||
|
|
||||||
|
const quint32 id = (countPP == 1 ? history.last().getId() : PPLastToolId(name));
|
||||||
|
|
||||||
|
if (id == NULL_ID)
|
||||||
|
{
|
||||||
|
return (data != nullptr ? *data : VContainer(nullptr, nullptr, VContainer::UniqueNamespace()));
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
ToolExists(id);
|
||||||
|
}
|
||||||
|
catch (VExceptionBadId &e)
|
||||||
|
{
|
||||||
|
Q_UNUSED(e)
|
||||||
|
return (data != nullptr ? *data : VContainer(nullptr, nullptr, VContainer::UniqueNamespace()));
|
||||||
|
}
|
||||||
|
|
||||||
|
const VDataTool *vTool = tools.value(id);
|
||||||
|
SCASSERT(vTool != nullptr)
|
||||||
|
VContainer lastData = vTool->getData();
|
||||||
|
//Delete special variables if exist
|
||||||
|
lastData.RemoveVariable(currentLength);
|
||||||
|
lastData.RemoveVariable(currentSeamAllowance);
|
||||||
|
return lastData;
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
/**
|
/**
|
||||||
* @brief SPointActiveDraw return id base point current pattern peace.
|
* @brief SPointActiveDraw return id base point current pattern peace.
|
||||||
|
@ -3615,6 +3650,12 @@ quint32 VPattern::LastToolId() const
|
||||||
return NULL_ID;
|
return NULL_ID;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return PPLastToolId(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
quint32 VPattern::PPLastToolId(const QString &name) const
|
||||||
|
{
|
||||||
const QVector<VToolRecord> localHistory = getLocalHistory(name);
|
const QVector<VToolRecord> localHistory = getLocalHistory(name);
|
||||||
|
|
||||||
return (not localHistory.isEmpty() ? localHistory.last().getId() : NULL_ID);
|
return (not localHistory.isEmpty() ? localHistory.last().getId() : NULL_ID);
|
||||||
|
|
|
@ -58,7 +58,9 @@ public:
|
||||||
|
|
||||||
void setCurrentData();
|
void setCurrentData();
|
||||||
virtual void UpdateToolData(const quint32 &id, VContainer *data) override;
|
virtual void UpdateToolData(const quint32 &id, VContainer *data) override;
|
||||||
VContainer GetCompleteData() const;
|
|
||||||
|
virtual VContainer GetCompleteData() const override;
|
||||||
|
virtual VContainer GetCompletePPData(const QString &name) const override;
|
||||||
|
|
||||||
virtual void IncrementReferens(quint32 id) const override;
|
virtual void IncrementReferens(quint32 id) const override;
|
||||||
virtual void DecrementReferens(quint32 id) const override;
|
virtual void DecrementReferens(quint32 id) const override;
|
||||||
|
@ -256,6 +258,7 @@ private:
|
||||||
|
|
||||||
QString LastDrawName() const;
|
QString LastDrawName() const;
|
||||||
quint32 LastToolId() const;
|
quint32 LastToolId() const;
|
||||||
|
quint32 PPLastToolId(const QString &name) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // VPATTERN_H
|
#endif // VPATTERN_H
|
||||||
|
|
|
@ -2442,6 +2442,19 @@ QString VAbstractPattern::PieceDrawName(quint32 id)
|
||||||
return draw.attribute(VAbstractPattern::AttrName);
|
return draw.attribute(VAbstractPattern::AttrName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
VContainer VAbstractPattern::GetCompleteData() const
|
||||||
|
{
|
||||||
|
return VContainer(nullptr, nullptr, VContainer::UniqueNamespace());
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
VContainer VAbstractPattern::GetCompletePPData(const QString &name) const
|
||||||
|
{
|
||||||
|
Q_UNUSED(name)
|
||||||
|
return VContainer(nullptr, nullptr, VContainer::UniqueNamespace());
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
QStringList VAbstractPattern::FilterGroupTags(const QString &tags)
|
QStringList VAbstractPattern::FilterGroupTags(const QString &tags)
|
||||||
{
|
{
|
||||||
|
|
|
@ -230,6 +230,9 @@ public:
|
||||||
|
|
||||||
QString PieceDrawName(quint32 id);
|
QString PieceDrawName(quint32 id);
|
||||||
|
|
||||||
|
virtual VContainer GetCompleteData() const;
|
||||||
|
virtual VContainer GetCompletePPData(const QString &name) const;
|
||||||
|
|
||||||
static const QString TagPattern;
|
static const QString TagPattern;
|
||||||
static const QString TagCalculation;
|
static const QString TagCalculation;
|
||||||
static const QString TagModeling;
|
static const QString TagModeling;
|
||||||
|
|
|
@ -79,12 +79,10 @@ T *GetPatternTool(quint32 id)
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
VPatternRecipe::VPatternRecipe(VContainer *data, VAbstractPattern *pattern, QObject *parent)
|
VPatternRecipe::VPatternRecipe(VAbstractPattern *pattern, QObject *parent)
|
||||||
: VDomDocument(parent),
|
: VDomDocument(parent),
|
||||||
m_data(data),
|
|
||||||
m_pattern(pattern)
|
m_pattern(pattern)
|
||||||
{
|
{
|
||||||
SCASSERT(data != nullptr)
|
|
||||||
SCASSERT(pattern != nullptr)
|
SCASSERT(pattern != nullptr)
|
||||||
|
|
||||||
QDomElement recipeElement = createElement(QStringLiteral("recipe"));
|
QDomElement recipeElement = createElement(QStringLiteral("recipe"));
|
||||||
|
@ -135,7 +133,8 @@ QDomElement VPatternRecipe::Measurements()
|
||||||
{
|
{
|
||||||
QDomElement measurements = createElement(QStringLiteral("measurements"));
|
QDomElement measurements = createElement(QStringLiteral("measurements"));
|
||||||
|
|
||||||
QList<QSharedPointer<VMeasurement>> patternMeasurements = m_data->DataMeasurements().values();
|
VContainer data = m_pattern->GetCompleteData();
|
||||||
|
QList<QSharedPointer<VMeasurement>> patternMeasurements = data.DataMeasurements().values();
|
||||||
|
|
||||||
// Resore order
|
// Resore order
|
||||||
std::sort(patternMeasurements.begin(), patternMeasurements.end(),
|
std::sort(patternMeasurements.begin(), patternMeasurements.end(),
|
||||||
|
@ -174,7 +173,8 @@ QDomElement VPatternRecipe::Increments()
|
||||||
{
|
{
|
||||||
QDomElement increments = createElement(QStringLiteral("increments"));
|
QDomElement increments = createElement(QStringLiteral("increments"));
|
||||||
|
|
||||||
QList<QSharedPointer<VIncrement>> patternIncrements = m_data->DataIncrements().values();
|
VContainer data = m_pattern->GetCompleteData();
|
||||||
|
QList<QSharedPointer<VIncrement>> patternIncrements = data.DataIncrements().values();
|
||||||
|
|
||||||
// Resore order
|
// Resore order
|
||||||
std::sort(patternIncrements.begin(), patternIncrements.end(),
|
std::sort(patternIncrements.begin(), patternIncrements.end(),
|
||||||
|
@ -197,7 +197,8 @@ QDomElement VPatternRecipe::PreviewCalculations()
|
||||||
{
|
{
|
||||||
QDomElement previewCalculations = createElement(QStringLiteral("previewCalculations"));
|
QDomElement previewCalculations = createElement(QStringLiteral("previewCalculations"));
|
||||||
|
|
||||||
QList<QSharedPointer<VIncrement>> patternIncrements = m_data->DataIncrements().values();
|
VContainer data = m_pattern->GetCompleteData();
|
||||||
|
QList<QSharedPointer<VIncrement>> patternIncrements = data.DataIncrements().values();
|
||||||
|
|
||||||
// Resore order
|
// Resore order
|
||||||
std::sort(patternIncrements.begin(), patternIncrements.end(),
|
std::sort(patternIncrements.begin(), patternIncrements.end(),
|
||||||
|
@ -266,12 +267,14 @@ QDomElement VPatternRecipe::Draft(const QDomElement &draft)
|
||||||
const QString draftName = draft.attribute(QStringLiteral("name"));
|
const QString draftName = draft.attribute(QStringLiteral("name"));
|
||||||
SetAttribute(recipeDraft, QStringLiteral("name"), draftName);
|
SetAttribute(recipeDraft, QStringLiteral("name"), draftName);
|
||||||
|
|
||||||
|
VContainer data = m_pattern->GetCompletePPData(draftName);
|
||||||
|
|
||||||
QVector<VToolRecord> *history = m_pattern->getHistory();
|
QVector<VToolRecord> *history = m_pattern->getHistory();
|
||||||
for (auto &record : *history)
|
for (auto &record : *history)
|
||||||
{
|
{
|
||||||
if (record.getNameDraw() == draftName)
|
if (record.getNameDraw() == draftName)
|
||||||
{
|
{
|
||||||
QDomElement step = Step(record);
|
QDomElement step = Step(record, data);
|
||||||
if (not step.isNull())
|
if (not step.isNull())
|
||||||
{
|
{
|
||||||
recipeDraft.appendChild(step);
|
recipeDraft.appendChild(step);
|
||||||
|
@ -283,7 +286,7 @@ QDomElement VPatternRecipe::Draft(const QDomElement &draft)
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
QDomElement VPatternRecipe::Step(const VToolRecord &tool)
|
QDomElement VPatternRecipe::Step(const VToolRecord &tool, const VContainer &data)
|
||||||
{
|
{
|
||||||
// This check helps to find missed tools in the switch
|
// This check helps to find missed tools in the switch
|
||||||
Q_STATIC_ASSERT_X(static_cast<int>(Tool::LAST_ONE_DO_NOT_USE) == 55, "Not all tools were used in history.");
|
Q_STATIC_ASSERT_X(static_cast<int>(Tool::LAST_ONE_DO_NOT_USE) == 55, "Not all tools were used in history.");
|
||||||
|
@ -371,13 +374,13 @@ QT_WARNING_DISABLE_GCC("-Wswitch-default")
|
||||||
case Tool::EllipticalArc:
|
case Tool::EllipticalArc:
|
||||||
return EllipticalArc(tool);
|
return EllipticalArc(tool);
|
||||||
case Tool::Rotation:
|
case Tool::Rotation:
|
||||||
return Rotation(tool);
|
return Rotation(tool, data);
|
||||||
case Tool::FlippingByLine:
|
case Tool::FlippingByLine:
|
||||||
return FlippingByLine(tool);
|
return FlippingByLine(tool, data);
|
||||||
case Tool::FlippingByAxis:
|
case Tool::FlippingByAxis:
|
||||||
return FlippingByAxis(tool);
|
return FlippingByAxis(tool, data);
|
||||||
case Tool::Move:
|
case Tool::Move:
|
||||||
return Move(tool);
|
return Move(tool, data);
|
||||||
//Because "history" not only show history of pattern, but help restore current data for each pattern's
|
//Because "history" not only show history of pattern, but help restore current data for each pattern's
|
||||||
//piece, we need add record about details and nodes, but don't show them.
|
//piece, we need add record about details and nodes, but don't show them.
|
||||||
case Tool::Piece:
|
case Tool::Piece:
|
||||||
|
@ -411,17 +414,18 @@ QDomElement VPatternRecipe::FinalMeasurements()
|
||||||
QDomElement recipeFinalMeasurements = createElement(QStringLiteral("finalMeasurements"));
|
QDomElement recipeFinalMeasurements = createElement(QStringLiteral("finalMeasurements"));
|
||||||
|
|
||||||
const QVector<VFinalMeasurement> measurements = m_pattern->GetFinalMeasurements();
|
const QVector<VFinalMeasurement> measurements = m_pattern->GetFinalMeasurements();
|
||||||
|
VContainer data = m_pattern->GetCompleteData();
|
||||||
|
|
||||||
for (auto &m : measurements)
|
for (auto &m : measurements)
|
||||||
{
|
{
|
||||||
recipeFinalMeasurements.appendChild(FinalMeasurement(m));
|
recipeFinalMeasurements.appendChild(FinalMeasurement(m, data));
|
||||||
}
|
}
|
||||||
|
|
||||||
return recipeFinalMeasurements;
|
return recipeFinalMeasurements;
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
QDomElement VPatternRecipe::FinalMeasurement(const VFinalMeasurement &fm)
|
QDomElement VPatternRecipe::FinalMeasurement(const VFinalMeasurement &fm, const VContainer &data)
|
||||||
{
|
{
|
||||||
QDomElement recipeFinalMeasurement = createElement(QStringLiteral("finalMeasurement"));
|
QDomElement recipeFinalMeasurement = createElement(QStringLiteral("finalMeasurement"));
|
||||||
|
|
||||||
|
@ -430,7 +434,7 @@ QDomElement VPatternRecipe::FinalMeasurement(const VFinalMeasurement &fm)
|
||||||
SetAttribute(recipeFinalMeasurement, QStringLiteral("formula"), fm.formula); // TODO: localize
|
SetAttribute(recipeFinalMeasurement, QStringLiteral("formula"), fm.formula); // TODO: localize
|
||||||
|
|
||||||
QScopedPointer<Calculator> cal(new Calculator());
|
QScopedPointer<Calculator> cal(new Calculator());
|
||||||
const qreal result = cal->EvalFormula(m_data->DataVariables(), fm.formula);
|
const qreal result = cal->EvalFormula(data.DataVariables(), fm.formula);
|
||||||
if (qIsInf(result) || qIsNaN(result))
|
if (qIsInf(result) || qIsNaN(result))
|
||||||
{
|
{
|
||||||
const QString errorMsg = QString("%1\n\n%1").arg(tr("Reading final measurements error."),
|
const QString errorMsg = QString("%1\n\n%1").arg(tr("Reading final measurements error."),
|
||||||
|
@ -1002,7 +1006,7 @@ QDomElement VPatternRecipe::EllipticalArc(const VToolRecord &record)
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
QDomElement VPatternRecipe::Rotation(const VToolRecord &record)
|
QDomElement VPatternRecipe::Rotation(const VToolRecord &record, const VContainer &data)
|
||||||
{
|
{
|
||||||
auto *tool = GetPatternTool<VToolRotation>(record.getId());
|
auto *tool = GetPatternTool<VToolRotation>(record.getId());
|
||||||
|
|
||||||
|
@ -1013,13 +1017,13 @@ QDomElement VPatternRecipe::Rotation(const VToolRecord &record)
|
||||||
Formula(step, tool->GetFormulaAngle(), AttrAngle, AttrAngleValue);
|
Formula(step, tool->GetFormulaAngle(), AttrAngle, AttrAngleValue);
|
||||||
SetAttribute(step, AttrSuffix, tool->Suffix());
|
SetAttribute(step, AttrSuffix, tool->Suffix());
|
||||||
|
|
||||||
step.appendChild(GroupOperationSource(tool, record.getId()));
|
step.appendChild(GroupOperationSource(tool, record.getId(), data));
|
||||||
|
|
||||||
return step;
|
return step;
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
QDomElement VPatternRecipe::FlippingByLine(const VToolRecord &record)
|
QDomElement VPatternRecipe::FlippingByLine(const VToolRecord &record, const VContainer &data)
|
||||||
{
|
{
|
||||||
auto *tool = GetPatternTool<VToolFlippingByLine>(record.getId());
|
auto *tool = GetPatternTool<VToolFlippingByLine>(record.getId());
|
||||||
|
|
||||||
|
@ -1030,13 +1034,13 @@ QDomElement VPatternRecipe::FlippingByLine(const VToolRecord &record)
|
||||||
SetAttribute(step, AttrP2Line, tool->SecondLinePointName());
|
SetAttribute(step, AttrP2Line, tool->SecondLinePointName());
|
||||||
SetAttribute(step, AttrSuffix, tool->Suffix());
|
SetAttribute(step, AttrSuffix, tool->Suffix());
|
||||||
|
|
||||||
step.appendChild(GroupOperationSource(tool, record.getId()));
|
step.appendChild(GroupOperationSource(tool, record.getId(), data));
|
||||||
|
|
||||||
return step;
|
return step;
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
QDomElement VPatternRecipe::FlippingByAxis(const VToolRecord &record)
|
QDomElement VPatternRecipe::FlippingByAxis(const VToolRecord &record, const VContainer &data)
|
||||||
{
|
{
|
||||||
auto *tool = GetPatternTool<VToolFlippingByAxis>(record.getId());
|
auto *tool = GetPatternTool<VToolFlippingByAxis>(record.getId());
|
||||||
|
|
||||||
|
@ -1047,13 +1051,13 @@ QDomElement VPatternRecipe::FlippingByAxis(const VToolRecord &record)
|
||||||
SetAttribute(step, AttrAxisType, static_cast<int>(tool->GetAxisType()));
|
SetAttribute(step, AttrAxisType, static_cast<int>(tool->GetAxisType()));
|
||||||
SetAttribute(step, AttrSuffix, tool->Suffix());
|
SetAttribute(step, AttrSuffix, tool->Suffix());
|
||||||
|
|
||||||
step.appendChild(GroupOperationSource(tool, record.getId()));
|
step.appendChild(GroupOperationSource(tool, record.getId(), data));
|
||||||
|
|
||||||
return step;
|
return step;
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
QDomElement VPatternRecipe::Move(const VToolRecord &record)
|
QDomElement VPatternRecipe::Move(const VToolRecord &record, const VContainer &data)
|
||||||
{
|
{
|
||||||
auto *tool = GetPatternTool<VToolMove>(record.getId());
|
auto *tool = GetPatternTool<VToolMove>(record.getId());
|
||||||
|
|
||||||
|
@ -1066,7 +1070,7 @@ QDomElement VPatternRecipe::Move(const VToolRecord &record)
|
||||||
SetAttribute(step, AttrCenter, tool->OriginPointName());
|
SetAttribute(step, AttrCenter, tool->OriginPointName());
|
||||||
SetAttribute(step, AttrSuffix, tool->Suffix());
|
SetAttribute(step, AttrSuffix, tool->Suffix());
|
||||||
|
|
||||||
step.appendChild(GroupOperationSource(tool, record.getId()));
|
step.appendChild(GroupOperationSource(tool, record.getId(), data));
|
||||||
|
|
||||||
return step;
|
return step;
|
||||||
}
|
}
|
||||||
|
@ -1103,7 +1107,7 @@ void VPatternRecipe::CurveAttributes(QDomElement &step, T *tool)
|
||||||
SetAttribute(step, AttrPenStyle, tool->GetPenStyle());
|
SetAttribute(step, AttrPenStyle, tool->GetPenStyle());
|
||||||
SetAttribute(step, AttrAScale, tool->GetApproximationScale());
|
SetAttribute(step, AttrAScale, tool->GetApproximationScale());
|
||||||
SetAttribute(step, AttrDuplicate, tool->GetDuplicate());
|
SetAttribute(step, AttrDuplicate, tool->GetDuplicate());
|
||||||
SetAttribute(step, AttrAlias, tool->GetAliasSuffix());
|
SetAttributeOrRemoveIf(step, AttrAlias, tool->GetAliasSuffix(), tool->GetAliasSuffix().isEmpty());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1111,8 +1115,8 @@ void VPatternRecipe::CurveAttributes(QDomElement &step, T *tool)
|
||||||
template<typename T>
|
template<typename T>
|
||||||
void VPatternRecipe::CutCurveAttributes(QDomElement &step, T *tool)
|
void VPatternRecipe::CutCurveAttributes(QDomElement &step, T *tool)
|
||||||
{
|
{
|
||||||
SetAttribute(step, AttrAlias1, tool->GetAliasSuffix1());
|
SetAttributeOrRemoveIf(step, AttrAlias1, tool->GetAliasSuffix1(), tool->GetAliasSuffix1().isEmpty());
|
||||||
SetAttribute(step, AttrAlias2, tool->GetAliasSuffix2());
|
SetAttributeOrRemoveIf(step, AttrAlias2, tool->GetAliasSuffix2(), tool->GetAliasSuffix2().isEmpty());
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -1125,7 +1129,7 @@ inline void VPatternRecipe::ToolAttributes(QDomElement &step, T *tool)
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
QDomElement VPatternRecipe::GroupOperationSource(VAbstractOperation *tool, quint32 id)
|
QDomElement VPatternRecipe::GroupOperationSource(VAbstractOperation *tool, quint32 id, const VContainer &data)
|
||||||
{
|
{
|
||||||
SCASSERT(tool)
|
SCASSERT(tool)
|
||||||
|
|
||||||
|
@ -1145,7 +1149,7 @@ QDomElement VPatternRecipe::GroupOperationSource(VAbstractOperation *tool, quint
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
obj = m_data->GetGObject(item.id);
|
obj = data.GetGObject(item.id);
|
||||||
}
|
}
|
||||||
catch (const VExceptionBadId &e)
|
catch (const VExceptionBadId &e)
|
||||||
{
|
{
|
||||||
|
@ -1153,11 +1157,8 @@ QDomElement VPatternRecipe::GroupOperationSource(VAbstractOperation *tool, quint
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
SetAttribute(node, AttrItem, obj->name());
|
SetAttribute(node, AttrItem, obj->ObjectName());
|
||||||
if (not obj->GetAlias().isEmpty())
|
SetAttributeOrRemoveIf(node, AttrAlias, item.alias, item.alias.isEmpty());
|
||||||
{
|
|
||||||
SetAttribute(node, AttrAlias, obj->GetAlias());
|
|
||||||
}
|
|
||||||
|
|
||||||
if (obj->getType() != GOType::Point)
|
if (obj->getType() != GOType::Point)
|
||||||
{
|
{
|
||||||
|
@ -1172,6 +1173,34 @@ QDomElement VPatternRecipe::GroupOperationSource(VAbstractOperation *tool, quint
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QT_WARNING_PUSH
|
||||||
|
QT_WARNING_DISABLE_GCC("-Wswitch-default")
|
||||||
|
switch(static_cast<GOType>(obj->getType()))
|
||||||
|
{
|
||||||
|
case GOType::Point:
|
||||||
|
SetAttribute(node, AttrType, QStringLiteral("point"));
|
||||||
|
break;
|
||||||
|
case GOType::Arc:
|
||||||
|
SetAttribute(node, AttrType, QStringLiteral("arc"));
|
||||||
|
break;
|
||||||
|
case GOType::EllipticalArc:
|
||||||
|
SetAttribute(node, AttrType, QStringLiteral("elArc"));
|
||||||
|
break;
|
||||||
|
case GOType::Spline:
|
||||||
|
case GOType::CubicBezier:
|
||||||
|
SetAttribute(node, AttrType, QStringLiteral("spline"));
|
||||||
|
break;
|
||||||
|
case GOType::SplinePath:
|
||||||
|
case GOType::CubicBezierPath:
|
||||||
|
SetAttribute(node, AttrType, QStringLiteral("splinePath"));
|
||||||
|
break;
|
||||||
|
case GOType::Unknown:
|
||||||
|
case GOType::PlaceLabel:
|
||||||
|
Q_UNREACHABLE();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
QT_WARNING_POP
|
||||||
|
|
||||||
nodes.appendChild(node);
|
nodes.appendChild(node);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -43,13 +43,12 @@ class VPatternRecipe : public VDomDocument
|
||||||
{
|
{
|
||||||
Q_DECLARE_TR_FUNCTIONS(VPatternRecipe)
|
Q_DECLARE_TR_FUNCTIONS(VPatternRecipe)
|
||||||
public:
|
public:
|
||||||
VPatternRecipe(VContainer *data, VAbstractPattern *pattern, QObject *parent = nullptr);
|
explicit VPatternRecipe(VAbstractPattern *pattern, QObject *parent = nullptr);
|
||||||
virtual ~VPatternRecipe() Q_DECL_EQ_DEFAULT;
|
virtual ~VPatternRecipe() Q_DECL_EQ_DEFAULT;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Q_DISABLE_COPY(VPatternRecipe)
|
Q_DISABLE_COPY(VPatternRecipe)
|
||||||
|
|
||||||
VContainer *m_data;
|
|
||||||
VAbstractPattern *m_pattern;
|
VAbstractPattern *m_pattern;
|
||||||
|
|
||||||
QDomElement Prerequisite();
|
QDomElement Prerequisite();
|
||||||
|
@ -64,10 +63,10 @@ private:
|
||||||
QDomElement Content();
|
QDomElement Content();
|
||||||
|
|
||||||
QDomElement Draft(const QDomElement &draft);
|
QDomElement Draft(const QDomElement &draft);
|
||||||
QDomElement Step(const VToolRecord &tool);
|
QDomElement Step(const VToolRecord &tool, const VContainer &data);
|
||||||
|
|
||||||
QDomElement FinalMeasurements();
|
QDomElement FinalMeasurements();
|
||||||
QDomElement FinalMeasurement(const VFinalMeasurement &fm);
|
QDomElement FinalMeasurement(const VFinalMeasurement &fm, const VContainer &data);
|
||||||
|
|
||||||
QDomElement BasePoint(const VToolRecord &record);
|
QDomElement BasePoint(const VToolRecord &record);
|
||||||
QDomElement EndLine(const VToolRecord &record);
|
QDomElement EndLine(const VToolRecord &record);
|
||||||
|
@ -99,10 +98,10 @@ private:
|
||||||
QDomElement PointFromArcAndTangent(const VToolRecord &record);
|
QDomElement PointFromArcAndTangent(const VToolRecord &record);
|
||||||
QDomElement TrueDarts(const VToolRecord &record);
|
QDomElement TrueDarts(const VToolRecord &record);
|
||||||
QDomElement EllipticalArc(const VToolRecord &record);
|
QDomElement EllipticalArc(const VToolRecord &record);
|
||||||
QDomElement Rotation(const VToolRecord &record);
|
QDomElement Rotation(const VToolRecord &record, const VContainer &data);
|
||||||
QDomElement FlippingByLine(const VToolRecord &record);
|
QDomElement FlippingByLine(const VToolRecord &record, const VContainer &data);
|
||||||
QDomElement FlippingByAxis(const VToolRecord &record);
|
QDomElement FlippingByAxis(const VToolRecord &record, const VContainer &data);
|
||||||
QDomElement Move(const VToolRecord &record);
|
QDomElement Move(const VToolRecord &record, const VContainer &data);
|
||||||
|
|
||||||
void Formula(QDomElement &step, const VFormula &formula, const QString &formulaStr, const QString &formulaValue);
|
void Formula(QDomElement &step, const VFormula &formula, const QString &formulaStr, const QString &formulaValue);
|
||||||
|
|
||||||
|
@ -118,7 +117,7 @@ private:
|
||||||
template <typename T>
|
template <typename T>
|
||||||
void CutCurveAttributes(QDomElement &step, T* tool);
|
void CutCurveAttributes(QDomElement &step, T* tool);
|
||||||
|
|
||||||
QDomElement GroupOperationSource(VAbstractOperation *tool, quint32 id);
|
QDomElement GroupOperationSource(VAbstractOperation *tool, quint32 id, const VContainer &data);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // VPATTERNRECIPE_H
|
#endif // VPATTERNRECIPE_H
|
||||||
|
|
Loading…
Reference in New Issue
Block a user