From 21e034ef715648b88d15ed463c4497b56b4d3e9a Mon Sep 17 00:00:00 2001 From: Roman Telezhynskyi Date: Tue, 31 Jan 2017 14:27:13 +0200 Subject: [PATCH] QPlainTextEdit widget crash a dialog if do not disable signal when closing a dialog. --HG-- branch : feature --- src/libs/vtools/dialogs/tools/dialogpiecepath.cpp | 9 +++++++++ src/libs/vtools/dialogs/tools/dialogpiecepath.h | 1 + src/libs/vtools/dialogs/tools/dialogseamallowance.cpp | 11 +++++++++++ src/libs/vtools/dialogs/tools/dialogseamallowance.h | 1 + 4 files changed, 22 insertions(+) diff --git a/src/libs/vtools/dialogs/tools/dialogpiecepath.cpp b/src/libs/vtools/dialogs/tools/dialogpiecepath.cpp index c4ca47744..9bd71171d 100644 --- a/src/libs/vtools/dialogs/tools/dialogpiecepath.cpp +++ b/src/libs/vtools/dialogs/tools/dialogpiecepath.cpp @@ -201,6 +201,15 @@ void DialogPiecePath::ShowVisualization() } } +//--------------------------------------------------------------------------------------------------------------------- +void DialogPiecePath::closeEvent(QCloseEvent *event) +{ + ui->plainTextEditFormulaWidth->blockSignals(true); + ui->plainTextEditFormulaWidthBefore->blockSignals(true); + ui->plainTextEditFormulaWidthAfter->blockSignals(true); + DialogTool::closeEvent(event); +} + //--------------------------------------------------------------------------------------------------------------------- void DialogPiecePath::ShowContextMenu(const QPoint &pos) { diff --git a/src/libs/vtools/dialogs/tools/dialogpiecepath.h b/src/libs/vtools/dialogs/tools/dialogpiecepath.h index 4739d8ea3..a362cd886 100644 --- a/src/libs/vtools/dialogs/tools/dialogpiecepath.h +++ b/src/libs/vtools/dialogs/tools/dialogpiecepath.h @@ -65,6 +65,7 @@ protected: virtual void SaveData() Q_DECL_OVERRIDE; virtual void CheckState() Q_DECL_OVERRIDE; virtual void ShowVisualization() Q_DECL_OVERRIDE; + virtual void closeEvent(QCloseEvent *event) Q_DECL_OVERRIDE; private slots: void ShowContextMenu(const QPoint &pos); diff --git a/src/libs/vtools/dialogs/tools/dialogseamallowance.cpp b/src/libs/vtools/dialogs/tools/dialogseamallowance.cpp index 7ebc6f922..eec2e4cc1 100644 --- a/src/libs/vtools/dialogs/tools/dialogseamallowance.cpp +++ b/src/libs/vtools/dialogs/tools/dialogseamallowance.cpp @@ -304,6 +304,17 @@ void DialogSeamAllowance::CheckState() } } +//--------------------------------------------------------------------------------------------------------------------- +void DialogSeamAllowance::closeEvent(QCloseEvent *event) +{ + ui->plainTextEditFormulaWidth->blockSignals(true); + ui->plainTextEditFormulaWidthBefore->blockSignals(true); + ui->plainTextEditFormulaWidthAfter->blockSignals(true); + ui->lineEditRotFormula->blockSignals(true); + ui->lineEditLenFormula->blockSignals(true); + DialogTool::closeEvent(event); +} + //--------------------------------------------------------------------------------------------------------------------- void DialogSeamAllowance::UpdateList() { diff --git a/src/libs/vtools/dialogs/tools/dialogseamallowance.h b/src/libs/vtools/dialogs/tools/dialogseamallowance.h index ece3aff7a..dc04306fe 100644 --- a/src/libs/vtools/dialogs/tools/dialogseamallowance.h +++ b/src/libs/vtools/dialogs/tools/dialogseamallowance.h @@ -63,6 +63,7 @@ protected: /** @brief SaveData Put dialog data in local variables */ virtual void SaveData() Q_DECL_OVERRIDE; virtual void CheckState() Q_DECL_OVERRIDE; + virtual void closeEvent(QCloseEvent *event) Q_DECL_OVERRIDE; protected slots: void UpdateList();