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 <volker.hilsheimer@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
(cherry picked from commit d56dbdd48cb6149b6697b1e695ee7e2de1151bee)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Tor Arne Vestbø 2025-02-20 12:32:21 +01:00 committed by Qt Cherry-pick Bot
parent 3bce1f5946
commit a6795882d8
2 changed files with 10 additions and 0 deletions

View File

@ -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;

View File

@ -61,6 +61,7 @@ private:
QCheckBox *modalWindowCheckBox;
QCheckBox *fixedSizeWindowCheckBox;
QCheckBox *safeAreaCheckBox;
QCheckBox *recreateCheckbox;
};
class LogWidget : public QPlainTextEdit