summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVolker Hilsheimer <volker.hilsheimer@qt.io>2022-03-10 13:01:32 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2022-03-14 16:16:44 +0000
commitdfe08f92cc85dc2b709cb49b8652989bea354791 (patch)
tree0a2342ffd1a05859778f6b421589545cf5357646
parentab943cdda0988a88d50cc2beb0655f647a96439b (diff)
Fix click position for check box and radio button baseline tests
Some styles override the clickable area. Change-Id: Id6ec9d9aa2faff39489b2baa412af4339779ff5c Reviewed-by: Axel Spoerl <axel.spoerl@qt.io> Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io> (cherry picked from commit fd4186cd234f5a93acb132bb694f6374b032741f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--tests/baseline/widgets/tst_baseline_widgets.cpp31
1 files changed, 24 insertions, 7 deletions
diff --git a/tests/baseline/widgets/tst_baseline_widgets.cpp b/tests/baseline/widgets/tst_baseline_widgets.cpp
index a9cd9c6fb4..31008b42f0 100644
--- a/tests/baseline/widgets/tst_baseline_widgets.cpp
+++ b/tests/baseline/widgets/tst_baseline_widgets.cpp
@@ -305,8 +305,14 @@ void tst_Widgets::tst_QCheckbox()
QFETCH(bool, hasIcon);
QFETCH(bool, isTriState);
+ class CheckBox : public QCheckBox
+ {
+ public:
+ using QCheckBox::initStyleOption;
+ };
+
QBoxLayout layout(QBoxLayout::TopToBottom);
- QCheckBox box;
+ CheckBox box;
box.setTristate(isTriState);
if (!text.isEmpty())
@@ -319,10 +325,11 @@ void tst_Widgets::tst_QCheckbox()
testWindow()->setLayout(&layout);
takeStandardSnapshots();
- do
- {
+ do {
const Qt::CheckState checkState = box.checkState();
- const QPoint clickTarget = box.rect().center();
+ QStyleOptionButton styleOption;
+ box.initStyleOption(&styleOption);
+ const QPoint clickTarget = box.style()->subElementRect(QStyle::SE_CheckBoxClickRect, &styleOption, &box).center();
const std::array titles = {"unChecked", "partiallyChecked", "checked"};
const QString snapShotTitle = titles[checkState];
@@ -355,7 +362,14 @@ void tst_Widgets::tst_QRadioButton()
QFETCH(QString,text);
QFETCH(bool,hasIcon);
- QRadioButton button1(testWindow());
+ class RadioButton : public QRadioButton
+ {
+ public:
+ using QRadioButton::QRadioButton;
+ using QRadioButton::initStyleOption;
+ };
+
+ RadioButton button1(testWindow());
if (!text.isEmpty())
button1.setText(text);
@@ -365,7 +379,7 @@ void tst_Widgets::tst_QRadioButton()
button1.setChecked(false);
- QRadioButton button2(testWindow());
+ RadioButton button2(testWindow());
if (!text.isEmpty())
button2.setText(text);
@@ -382,7 +396,10 @@ void tst_Widgets::tst_QRadioButton()
testWindow()->setLayout(&box);
takeStandardSnapshots();
- const QPoint clickTarget = button1.rect().center();
+ QStyleOptionButton styleOption;
+ button1.initStyleOption(&styleOption);
+ const QPoint clickTarget = button1.style()->subElementRect(QStyle::SE_RadioButtonClickRect, &styleOption, &button1).center();
+
QTest::mousePress(&button1,Qt::MouseButton::LeftButton, Qt::KeyboardModifiers(), clickTarget,0);
QVERIFY(button1.isDown());
QBASELINE_CHECK_DEFERRED(takeSnapshot(), "pressUnchecked");