From 56e352c421bd9648c3e46fe8b35a852104ce4b2a Mon Sep 17 00:00:00 2001 From: wmayer Date: Wed, 28 Nov 2012 13:48:22 +0100 Subject: [PATCH] Define closeDialog() method in Control as slot to allow delayed destruction of task dialogs --- src/Gui/Control.h | 6 ++++-- src/Mod/Part/Gui/ViewProviderMirror.cpp | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/Gui/Control.h b/src/Gui/Control.h index 78ab11f9a..639efd2b3 100644 --- a/src/Gui/Control.h +++ b/src/Gui/Control.h @@ -64,20 +64,22 @@ public: /// This method start an Task dialog in the TaskView void showDialog(Gui::TaskView::TaskDialog *dlg); Gui::TaskView::TaskDialog* activeDialog() const; - void closeDialog(); //@} /** @name task view handling */ //@{ Gui::TaskView::TaskView* taskPanel() const; - void showTaskView(); //@} bool isAllowedAlterDocument(void) const; bool isAllowedAlterView(void) const; bool isAllowedAlterSelection(void) const; +public Q_SLOTS: + void closeDialog(); + void showTaskView(); + private Q_SLOTS: /// This get called by the TaskView when the Dialog is finished void closedDialog(); diff --git a/src/Mod/Part/Gui/ViewProviderMirror.cpp b/src/Mod/Part/Gui/ViewProviderMirror.cpp index 00af752d4..8158ddf3c 100644 --- a/src/Mod/Part/Gui/ViewProviderMirror.cpp +++ b/src/Mod/Part/Gui/ViewProviderMirror.cpp @@ -26,6 +26,7 @@ #ifndef _PreComp_ # include # include +# include # include # include # include @@ -534,7 +535,7 @@ void ViewProviderThickness::unsetEdit(int ModNum) { if (ModNum == ViewProvider::Default) { // when pressing ESC make sure to close the dialog - Gui::Control().closeDialog(); + QTimer::singleShot(0, &Gui::Control(), SLOT(closeDialog())); } else { PartGui::ViewProviderPart::unsetEdit(ModNum);