diff options
author | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2022-03-10 13:01:32 +0100 |
---|---|---|
committer | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2022-03-14 16:13:06 +0100 |
commit | fd4186cd234f5a93acb132bb694f6374b032741f (patch) | |
tree | 7b26cb6dbd2a8830275b616ed52619f8ca4f14d3 /tests/baseline | |
parent | 4676418842faed412b190d691c6a5167543fd779 (diff) | |
download | qtbase-fd4186cd234f5a93acb132bb694f6374b032741f.tar.gz |
Fix click position for check box and radio button baseline tests
Some styles override the clickable area.
Pick-to: 6.3
Change-Id: Id6ec9d9aa2faff39489b2baa412af4339779ff5c
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Diffstat (limited to 'tests/baseline')
-rw-r--r-- | tests/baseline/widgets/tst_baseline_widgets.cpp | 31 |
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 34f9f74514..205f71f0de 100644 --- a/tests/baseline/widgets/tst_baseline_widgets.cpp +++ b/tests/baseline/widgets/tst_baseline_widgets.cpp @@ -440,8 +440,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()) @@ -454,10 +460,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]; @@ -490,7 +497,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); @@ -500,7 +514,7 @@ void tst_Widgets::tst_QRadioButton() button1.setChecked(false); - QRadioButton button2(testWindow()); + RadioButton button2(testWindow()); if (!text.isEmpty()) button2.setText(text); @@ -517,7 +531,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"); |