summaryrefslogtreecommitdiff
path: root/tests/baseline
diff options
context:
space:
mode:
authorVolker Hilsheimer <volker.hilsheimer@qt.io>2022-03-10 13:01:32 +0100
committerVolker Hilsheimer <volker.hilsheimer@qt.io>2022-03-14 16:13:06 +0100
commitfd4186cd234f5a93acb132bb694f6374b032741f (patch)
tree7b26cb6dbd2a8830275b616ed52619f8ca4f14d3 /tests/baseline
parent4676418842faed412b190d691c6a5167543fd779 (diff)
downloadqtbase-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.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 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");