From 8a19d8a0b12373e9ca6b27bb19357e745789c527 Mon Sep 17 00:00:00 2001 From: Roman Telezhynskyi Date: Mon, 6 Feb 2017 13:38:47 +0200 Subject: [PATCH] Fix bug with "internal variable" in localized form. Some tools have internal variables, if click button Apply a dialog lost information about such a variable. --HG-- branch : develop --- src/libs/vtools/dialogs/tools/dialogalongline.cpp | 3 --- .../vtools/dialogs/tools/dialogseamallowance.cpp | 3 --- src/libs/vtools/dialogs/tools/dialogtool.cpp | 5 +++++ src/libs/vtools/visualization/visualization.cpp | 12 ++++++++++++ src/libs/vtools/visualization/visualization.h | 3 +++ 5 files changed, 20 insertions(+), 6 deletions(-) diff --git a/src/libs/vtools/dialogs/tools/dialogalongline.cpp b/src/libs/vtools/dialogs/tools/dialogalongline.cpp index be87b34b4..635aca309 100644 --- a/src/libs/vtools/dialogs/tools/dialogalongline.cpp +++ b/src/libs/vtools/dialogs/tools/dialogalongline.cpp @@ -161,9 +161,6 @@ void DialogAlongLine::DeployFormulaTextEdit() //--------------------------------------------------------------------------------------------------------------------- DialogAlongLine::~DialogAlongLine() { - VContainer *locData = const_cast (data); - locData->RemoveVariable(currentLength); - delete ui; } diff --git a/src/libs/vtools/dialogs/tools/dialogseamallowance.cpp b/src/libs/vtools/dialogs/tools/dialogseamallowance.cpp index eec2e4cc1..737a4ef2c 100644 --- a/src/libs/vtools/dialogs/tools/dialogseamallowance.cpp +++ b/src/libs/vtools/dialogs/tools/dialogseamallowance.cpp @@ -92,9 +92,6 @@ DialogSeamAllowance::DialogSeamAllowance(const VContainer *data, const quint32 & //--------------------------------------------------------------------------------------------------------------------- DialogSeamAllowance::~DialogSeamAllowance() { - VContainer *locData = const_cast (data); - locData->RemoveVariable(currentSeamAllowance); - delete ui; } diff --git a/src/libs/vtools/dialogs/tools/dialogtool.cpp b/src/libs/vtools/dialogs/tools/dialogtool.cpp index b0d71b549..9eb92ce49 100644 --- a/src/libs/vtools/dialogs/tools/dialogtool.cpp +++ b/src/libs/vtools/dialogs/tools/dialogtool.cpp @@ -1108,6 +1108,11 @@ void DialogTool::SetAssociatedTool(VAbstractTool *tool) { associatedTool = tool; SetToolId(tool->getId()); + data = tool->getData(); + if (not vis.isNull()) + { + vis->SetData(data); + } } else { diff --git a/src/libs/vtools/visualization/visualization.cpp b/src/libs/vtools/visualization/visualization.cpp index c20ece212..50bcb6954 100644 --- a/src/libs/vtools/visualization/visualization.cpp +++ b/src/libs/vtools/visualization/visualization.cpp @@ -120,6 +120,18 @@ void Visualization::setMainColor(const QColor &value) InitPen(); } +//--------------------------------------------------------------------------------------------------------------------- +const VContainer *Visualization::GetData() const +{ + return data; +} + +//--------------------------------------------------------------------------------------------------------------------- +void Visualization::SetData(const VContainer *data) +{ + this->data = data; +} + //--------------------------------------------------------------------------------------------------------------------- void Visualization::SetFactor(qreal factor) { diff --git a/src/libs/vtools/visualization/visualization.h b/src/libs/vtools/visualization/visualization.h index 15b2d0ee3..e87319595 100644 --- a/src/libs/vtools/visualization/visualization.h +++ b/src/libs/vtools/visualization/visualization.h @@ -59,6 +59,9 @@ public: virtual void VisualMode(const quint32 &pointId); void setMainColor(const QColor &value); + const VContainer *GetData() const; + void SetData(const VContainer *data); + Mode GetMode() const; void SetMode(const Mode &value);