diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp index 3953437..d2eed61 100644 --- a/src/gui/kernel/qguiapplication.cpp +++ b/src/gui/kernel/qguiapplication.cpp @@ -2923,8 +2923,12 @@ void QGuiApplicationPrivate::commitData() Q_Q(QGuiApplication); is_saving_session = true; emit q->commitDataRequest(*session_manager); - if (session_manager->allowsInteraction() && !tryCloseAllWindows()) + if (session_manager->allowsInteraction() && !tryCloseAllWindows()) { + qDebug() << __FUNCTION__ << "Can"; session_manager->cancel(); + } else { + qDebug() << __FUNCTION__ << "Done"; + } is_saving_session = false; } diff --git a/src/widgets/dialogs/qdialog.cpp b/src/widgets/dialogs/qdialog.cpp index d498b07..0ce5a9b 100644 --- a/src/widgets/dialogs/qdialog.cpp +++ b/src/widgets/dialogs/qdialog.cpp @@ -557,8 +557,11 @@ int QDialog::exec() int res = result(); if (d->nativeDialogInUse) d->helperDone(static_cast(res), d->platformHelper()); - if (deleteOnClose) + qDebug() << __FUNCTION__ << deleteOnClose; + if (deleteOnClose) { + qDebug() << __FUNCTION__ << "Deleting " << this; delete this; + } return res; } diff --git a/src/widgets/kernel/qapplication.cpp b/src/widgets/kernel/qapplication.cpp index 19880f1..1c40122 100644 --- a/src/widgets/kernel/qapplication.cpp +++ b/src/widgets/kernel/qapplication.cpp @@ -1736,11 +1736,14 @@ QFontMetrics QApplication::fontMetrics() bool QApplicationPrivate::tryCloseAllWidgetWindows(QWindowList *processedWindows) { Q_ASSERT(processedWindows); + qDebug() << __FUNCTION__ << QApplication::topLevelWidgets(); while (QWidget *w = QApplication::activeModalWidget()) { if (!w->isVisible() || w->data->is_closing) break; if (!w->close()) return false; + qDebug() << "Closed dialog " << w << w->windowHandle() + << "QApplication::topLevelWidgets" << QApplication::topLevelWidgets(); if (QWindow *window = w->windowHandle()) processedWindows->append(window); } diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp index 46aa93f..923d111 100644 --- a/src/widgets/kernel/qwidget.cpp +++ b/src/widgets/kernel/qwidget.cpp @@ -1356,6 +1356,7 @@ void QWidget::create(WId window, bool initializeWindow, bool destroyOldWindow) QWidget::~QWidget() { + qDebug() << __FUNCTION__ << this; Q_D(QWidget); d->data.in_destructor = true;