From a6795882d8cbf6e2c68952cd274df3acd26a9088 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Thu, 20 Feb 2025 12:32:21 +0100 Subject: [PATCH] windowflags manual test: Add option to force window recreation Not all flags have an affect on an already created window, depending on the platform and existing flags. Add option to force recreating the window. To aid debugging we also now log platform destruction/recreation events. Change-Id: I7822cb58eaed51d72ed4ea3244f1f4113964cff7 Reviewed-by: Volker Hilsheimer Reviewed-by: Oliver Wolff (cherry picked from commit d56dbdd48cb6149b6697b1e695ee7e2de1151bee) Reviewed-by: Qt Cherry-pick Bot --- tests/manual/windowflags/controllerwindow.cpp | 9 +++++++++ tests/manual/windowflags/controllerwindow.h | 1 + 2 files changed, 10 insertions(+) diff --git a/tests/manual/windowflags/controllerwindow.cpp b/tests/manual/windowflags/controllerwindow.cpp index 5823bc5360e..a3710d031e1 100644 --- a/tests/manual/windowflags/controllerwindow.cpp +++ b/tests/manual/windowflags/controllerwindow.cpp @@ -79,6 +79,9 @@ void ControllerWidget::updatePreview(PreviewWindow *preview) { activePreview = preview; + if (recreateCheckbox->isChecked()) + activePreview->destroy(); + const Qt::WindowFlags flags = typeControl->type() | hintsControl->hints(); if (modalWindowCheckBox->isChecked()) { @@ -112,6 +115,9 @@ void ControllerWidget::updatePreview(QWidget *preview) { activePreview = preview->windowHandle(); + if (activePreview && recreateCheckbox->isChecked()) + activePreview->destroy(); + const Qt::WindowFlags flags = typeControl->type() | hintsControl->hints(); if (modalWindowCheckBox->isChecked()) { @@ -176,9 +182,11 @@ void ControllerWidget::createTypeGroupBox() modalWindowCheckBox = createCheckBox(tr("Modal window")); fixedSizeWindowCheckBox = createCheckBox(tr("Fixed size window")); safeAreaCheckBox = createCheckBox(tr("Visualize safe areas")); + recreateCheckbox = createCheckBox(tr("Recreate on update")); l->addWidget(modalWindowCheckBox); l->addWidget(fixedSizeWindowCheckBox); l->addWidget(safeAreaCheckBox); + l->addWidget(recreateCheckbox); additionalOptionsGroupBox->setLayout(l); } @@ -230,6 +238,7 @@ public: case QEvent::ApplicationActivate: case QEvent::ApplicationDeactivate: case QEvent::ApplicationStateChange: + case QEvent::PlatformSurface: if (isTopLevel(o)) formatEvent(o, e); break; diff --git a/tests/manual/windowflags/controllerwindow.h b/tests/manual/windowflags/controllerwindow.h index 8a0a1ee4710..56634aa0e53 100644 --- a/tests/manual/windowflags/controllerwindow.h +++ b/tests/manual/windowflags/controllerwindow.h @@ -61,6 +61,7 @@ private: QCheckBox *modalWindowCheckBox; QCheckBox *fixedSizeWindowCheckBox; QCheckBox *safeAreaCheckBox; + QCheckBox *recreateCheckbox; }; class LogWidget : public QPlainTextEdit