diff --git a/ChangeLog.txt b/ChangeLog.txt index c56e183b8..ca004e8cc 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -5,6 +5,7 @@ - Improved curve segment warnings. - Tape app. Add action Add separator to menu. - Tape app. Fix crash after switching language. +- Fix Valentina app crash after canceling a tool. # Valentina 0.7.51 April 18, 2022 - Z value change for a layout piece. diff --git a/src/libs/vtools/dialogs/tools/dialogalongline.cpp b/src/libs/vtools/dialogs/tools/dialogalongline.cpp index 487d8e7d9..480ffc25d 100644 --- a/src/libs/vtools/dialogs/tools/dialogalongline.cpp +++ b/src/libs/vtools/dialogs/tools/dialogalongline.cpp @@ -182,6 +182,9 @@ void DialogAlongLine::DeployFormulaTextEdit() //--------------------------------------------------------------------------------------------------------------------- DialogAlongLine::~DialogAlongLine() { + auto *locData = const_cast (data); + locData->RemoveVariable(currentLength); + delete ui; } @@ -283,7 +286,7 @@ void DialogAlongLine::SetCurrentLength() SCASSERT(length != nullptr) length->SetName(currentLength); - VContainer *locData = const_cast (data); + auto *locData = const_cast (data); locData->AddVariable(length); } diff --git a/src/libs/vtools/dialogs/tools/dialogcutarc.cpp b/src/libs/vtools/dialogs/tools/dialogcutarc.cpp index 05bc127fc..7189794ea 100644 --- a/src/libs/vtools/dialogs/tools/dialogcutarc.cpp +++ b/src/libs/vtools/dialogs/tools/dialogcutarc.cpp @@ -147,6 +147,9 @@ void DialogCutArc::DeployFormulaTextEdit() //--------------------------------------------------------------------------------------------------------------------- DialogCutArc::~DialogCutArc() { + auto *locData = const_cast (data); + locData->RemoveVariable(currentLength); + delete ui; } diff --git a/src/libs/vtools/dialogs/tools/dialogcutspline.cpp b/src/libs/vtools/dialogs/tools/dialogcutspline.cpp index d54f2c8bb..88ff124f2 100644 --- a/src/libs/vtools/dialogs/tools/dialogcutspline.cpp +++ b/src/libs/vtools/dialogs/tools/dialogcutspline.cpp @@ -106,6 +106,9 @@ DialogCutSpline::DialogCutSpline(const VContainer *data, quint32 toolId, QWidget //--------------------------------------------------------------------------------------------------------------------- DialogCutSpline::~DialogCutSpline() { + auto *locData = const_cast (data); + locData->RemoveVariable(currentLength); + delete ui; } diff --git a/src/libs/vtools/dialogs/tools/dialogcutsplinepath.cpp b/src/libs/vtools/dialogs/tools/dialogcutsplinepath.cpp index 9bf2c1498..156a3de1c 100644 --- a/src/libs/vtools/dialogs/tools/dialogcutsplinepath.cpp +++ b/src/libs/vtools/dialogs/tools/dialogcutsplinepath.cpp @@ -106,6 +106,9 @@ DialogCutSplinePath::DialogCutSplinePath(const VContainer *data, quint32 toolId, //--------------------------------------------------------------------------------------------------------------------- DialogCutSplinePath::~DialogCutSplinePath() { + auto *locData = const_cast (data); + locData->RemoveVariable(currentLength); + delete ui; }