From 1ac43751353a26b906d550324bfc6f2e8d54eb38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Wed, 8 Mar 2023 11:51:17 +0100 Subject: [PATCH] QErrorMessage: Reset 'again' check box between each error message The choice of whether to show a message again is per message, so when showing a new message we need to reset the check box back to its default checked state, otherwise the user might mistakenly dismiss more than the indented message. [ChangeLog][Widgets] QErrorMessage will now reset the check box for showing a message again for each new message shown, as each individual message has its own suppression state. Change-Id: I86d4bb5eabdb5b7a478c03516108a5edf87fcbe3 Reviewed-by: Volker Hilsheimer (cherry picked from commit f2fc2013defc2f346fa1936dcf357d34bae3dbba) Reviewed-by: Qt Cherry-pick Bot --- src/widgets/dialogs/qerrormessage.cpp | 1 + tests/auto/widgets/dialogs/qerrormessage/tst_qerrormessage.cpp | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/widgets/dialogs/qerrormessage.cpp b/src/widgets/dialogs/qerrormessage.cpp index b09b3b1f76f..a00af9a8d14 100644 --- a/src/widgets/dialogs/qerrormessage.cpp +++ b/src/widgets/dialogs/qerrormessage.cpp @@ -358,6 +358,7 @@ bool QErrorMessagePrivate::nextPending() #endif currentMessage = std::move(message); currentType = std::move(type); + again->setChecked(true); return true; } } diff --git a/tests/auto/widgets/dialogs/qerrormessage/tst_qerrormessage.cpp b/tests/auto/widgets/dialogs/qerrormessage/tst_qerrormessage.cpp index 4a67e1c0656..d4c8d10392a 100644 --- a/tests/auto/widgets/dialogs/qerrormessage/tst_qerrormessage.cpp +++ b/tests/auto/widgets/dialogs/qerrormessage/tst_qerrormessage.cpp @@ -70,8 +70,7 @@ void tst_QErrorMessage::dontShowAgain() QVERIFY(errorMessageDialog.isVisible()); checkBox = errorMessageDialog.findChild(); QVERIFY(checkBox); - QVERIFY(!checkBox->isChecked()); - checkBox->setChecked(true); + QVERIFY(checkBox->isChecked()); errorMessageDialog.close(); errorMessageDialog.showMessage(htmlString);