diff --git a/src/libs/vtools/dialogs/dialogtoolbox.cpp b/src/libs/vtools/dialogs/dialogtoolbox.cpp index fca2f4bbc..78013e835 100644 --- a/src/libs/vtools/dialogs/dialogtoolbox.cpp +++ b/src/libs/vtools/dialogs/dialogtoolbox.cpp @@ -33,6 +33,9 @@ #include "../vpatterndb/vcontainer.h" #include "../vpatterndb/vpiecenode.h" #include "../vgeometry/vpointf.h" +#include "../vpatterndb/variables/vcurvelength.h" +#include "../ifc/exception/vexceptionbadid.h" +#include "../vpatterndb/vcontainer.h" #include #include @@ -462,3 +465,24 @@ QFont NodeFont(QFont font, bool nodeExcluded) font.setStrikeOut(nodeExcluded); return font; } + +//--------------------------------------------------------------------------------------------------------------------- +void CurrentCurveLength(vidtype curveId, VContainer *data) +{ + SCASSERT(data != nullptr) + VCurveLength *length = nullptr; + try + { + const QSharedPointer curve = data->GeometricObject(curveId); + length = new VCurveLength(curveId, curveId, curve.data(), *data->GetPatternUnit()); + } + catch (const VExceptionBadId &) + { + length = new VCurveLength(); + } + + SCASSERT(length != nullptr) + length->SetName(currentLength); + + data->AddVariable(currentLength, length); +} diff --git a/src/libs/vtools/dialogs/dialogtoolbox.h b/src/libs/vtools/dialogs/dialogtoolbox.h index 257be42f1..6f8c12418 100644 --- a/src/libs/vtools/dialogs/dialogtoolbox.h +++ b/src/libs/vtools/dialogs/dialogtoolbox.h @@ -33,10 +33,7 @@ #include #include "../vpatterndb/variables/vinternalvariable.h" -#include "../vpatterndb/variables/vcurvelength.h" #include "../vmisc/typedef.h" -#include "../ifc/exception/vexceptionbadid.h" -#include "../vpatterndb/vcontainer.h" class QPlainTextEdit; class QPushButton; @@ -47,6 +44,7 @@ class QLabel; class QWidget; class QColor; class QLineEdit; +class VContainer; class QListWidget; class VPieceNode; @@ -87,33 +85,6 @@ bool DoubleCurves(QListWidget *listWidget); bool EachPointLabelIsUnique(QListWidget *listWidget); QString DialogWarningIcon(); QFont NodeFont(QFont font, bool nodeExcluded = false); - -template void CurrentCurveLength(vidtype curveId, VContainer *data); - -//--------------------------------------------------------------------------------------------------------------------- -template -void CurrentCurveLength(vidtype curveId, VContainer *data) -{ - SCASSERT(data != nullptr) - VCurveLength *length = nullptr; - try - { - const QSharedPointer curve = data->GeometricObject(curveId); - - length = new VCurveLength(curveId, curveId, curve.data(), *data->GetPatternUnit()); - } - catch (const VExceptionBadId &) - { - QScopedPointer curve(new T()); - length = new VCurveLength(NULL_ID, NULL_ID, curve.data(), *data->GetPatternUnit()); - } - - SCASSERT(length != nullptr) - length->SetName(currentLength); - - data->AddVariable(currentLength, length); -} - #endif // DIALOGTOOLBOX_H diff --git a/src/libs/vtools/dialogs/tools/dialogcutarc.cpp b/src/libs/vtools/dialogs/tools/dialogcutarc.cpp index adf15987c..e176af869 100644 --- a/src/libs/vtools/dialogs/tools/dialogcutarc.cpp +++ b/src/libs/vtools/dialogs/tools/dialogcutarc.cpp @@ -195,7 +195,7 @@ void DialogCutArc::closeEvent(QCloseEvent *event) //--------------------------------------------------------------------------------------------------------------------- void DialogCutArc::ArcChanged() { - CurrentCurveLength(getArcId(), const_cast (data)); + CurrentCurveLength(getArcId(), const_cast (data)); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/dialogs/tools/dialogcutspline.cpp b/src/libs/vtools/dialogs/tools/dialogcutspline.cpp index 866f419b9..8c8feb6a9 100644 --- a/src/libs/vtools/dialogs/tools/dialogcutspline.cpp +++ b/src/libs/vtools/dialogs/tools/dialogcutspline.cpp @@ -202,7 +202,7 @@ void DialogCutSpline::closeEvent(QCloseEvent *event) //--------------------------------------------------------------------------------------------------------------------- void DialogCutSpline::SplineChanged() { - CurrentCurveLength(getSplineId(), const_cast (data)); + CurrentCurveLength(getSplineId(), const_cast (data)); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vtools/dialogs/tools/dialogcutsplinepath.cpp b/src/libs/vtools/dialogs/tools/dialogcutsplinepath.cpp index b9b3ae26c..c5fe460df 100644 --- a/src/libs/vtools/dialogs/tools/dialogcutsplinepath.cpp +++ b/src/libs/vtools/dialogs/tools/dialogcutsplinepath.cpp @@ -202,7 +202,7 @@ void DialogCutSplinePath::closeEvent(QCloseEvent *event) //--------------------------------------------------------------------------------------------------------------------- void DialogCutSplinePath::SplinePathChanged() { - CurrentCurveLength(getSplinePathId(), const_cast (data)); + CurrentCurveLength(getSplinePathId(), const_cast (data)); } //---------------------------------------------------------------------------------------------------------------------