diff --git a/src/Mod/PartDesign/Gui/TaskChamferParameters.cpp b/src/Mod/PartDesign/Gui/TaskChamferParameters.cpp index 75745dc5fb..83671682d5 100644 --- a/src/Mod/PartDesign/Gui/TaskChamferParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskChamferParameters.cpp @@ -309,8 +309,14 @@ bool TaskChamferParameters::getFlipDirection(void) const TaskChamferParameters::~TaskChamferParameters() { - Gui::Selection().clearSelection(); - Gui::Selection().rmvSelectionGate(); + try { + Gui::Selection().clearSelection(); + Gui::Selection().rmvSelectionGate(); + } + catch (const Py::Exception&) { + Base::PyException e; // extract the Python error text + e.ReportException(); + } } bool TaskChamferParameters::event(QEvent *e) diff --git a/src/Mod/PartDesign/Gui/TaskDraftParameters.cpp b/src/Mod/PartDesign/Gui/TaskDraftParameters.cpp index 3a9298fc13..55e83b8e0b 100644 --- a/src/Mod/PartDesign/Gui/TaskDraftParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskDraftParameters.cpp @@ -317,8 +317,14 @@ bool TaskDraftParameters::getReversed(void) const TaskDraftParameters::~TaskDraftParameters() { - Gui::Selection().clearSelection(); - Gui::Selection().rmvSelectionGate(); + try { + Gui::Selection().clearSelection(); + Gui::Selection().rmvSelectionGate(); + } + catch (const Py::Exception&) { + Base::PyException e; // extract the Python error text + e.ReportException(); + } } bool TaskDraftParameters::event(QEvent *e) diff --git a/src/Mod/PartDesign/Gui/TaskFilletParameters.cpp b/src/Mod/PartDesign/Gui/TaskFilletParameters.cpp index 0e8b8e424b..037d9c0ef1 100644 --- a/src/Mod/PartDesign/Gui/TaskFilletParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskFilletParameters.cpp @@ -212,8 +212,14 @@ double TaskFilletParameters::getLength(void) const TaskFilletParameters::~TaskFilletParameters() { - Gui::Selection().clearSelection(); - Gui::Selection().rmvSelectionGate(); + try { + Gui::Selection().clearSelection(); + Gui::Selection().rmvSelectionGate(); + } + catch (const Py::Exception&) { + Base::PyException e; // extract the Python error text + e.ReportException(); + } } bool TaskFilletParameters::event(QEvent *e) diff --git a/src/Mod/PartDesign/Gui/TaskMultiTransformParameters.cpp b/src/Mod/PartDesign/Gui/TaskMultiTransformParameters.cpp index a5f4616615..2f51a28483 100644 --- a/src/Mod/PartDesign/Gui/TaskMultiTransformParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskMultiTransformParameters.cpp @@ -485,7 +485,13 @@ void TaskMultiTransformParameters::apply() TaskMultiTransformParameters::~TaskMultiTransformParameters() { - closeSubTask(); + try { + closeSubTask(); + } + catch (const Py::Exception&) { + Base::PyException e; // extract the Python error text + e.ReportException(); + } if (proxy) delete proxy; } diff --git a/src/Mod/PartDesign/Gui/TaskPipeParameters.cpp b/src/Mod/PartDesign/Gui/TaskPipeParameters.cpp index bfea0fd500..2789b33289 100644 --- a/src/Mod/PartDesign/Gui/TaskPipeParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskPipeParameters.cpp @@ -163,6 +163,10 @@ TaskPipeParameters::~TaskPipeParameters() // getDocument() may raise an exception e.ReportException(); } + catch (const Py::Exception&) { + Base::PyException e; // extract the Python error text + e.ReportException(); + } } void TaskPipeParameters::updateUI() diff --git a/src/Mod/PartDesign/Gui/TaskThicknessParameters.cpp b/src/Mod/PartDesign/Gui/TaskThicknessParameters.cpp index 44b3424da4..22c2fa3025 100644 --- a/src/Mod/PartDesign/Gui/TaskThicknessParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskThicknessParameters.cpp @@ -288,8 +288,14 @@ int TaskThicknessParameters::getMode(void) const { TaskThicknessParameters::~TaskThicknessParameters() { - Gui::Selection().clearSelection(); - Gui::Selection().rmvSelectionGate(); + try { + Gui::Selection().clearSelection(); + Gui::Selection().rmvSelectionGate(); + } + catch (const Py::Exception&) { + Base::PyException e; // extract the Python error text + e.ReportException(); + } } bool TaskThicknessParameters::event(QEvent *e)