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>
This commit is contained in:
parent
4676418842
commit
fd4186cd23
@ -440,8 +440,14 @@ void tst_Widgets::tst_QCheckbox()
|
|||||||
QFETCH(bool, hasIcon);
|
QFETCH(bool, hasIcon);
|
||||||
QFETCH(bool, isTriState);
|
QFETCH(bool, isTriState);
|
||||||
|
|
||||||
|
class CheckBox : public QCheckBox
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
using QCheckBox::initStyleOption;
|
||||||
|
};
|
||||||
|
|
||||||
QBoxLayout layout(QBoxLayout::TopToBottom);
|
QBoxLayout layout(QBoxLayout::TopToBottom);
|
||||||
QCheckBox box;
|
CheckBox box;
|
||||||
box.setTristate(isTriState);
|
box.setTristate(isTriState);
|
||||||
|
|
||||||
if (!text.isEmpty())
|
if (!text.isEmpty())
|
||||||
@ -454,10 +460,11 @@ void tst_Widgets::tst_QCheckbox()
|
|||||||
testWindow()->setLayout(&layout);
|
testWindow()->setLayout(&layout);
|
||||||
takeStandardSnapshots();
|
takeStandardSnapshots();
|
||||||
|
|
||||||
do
|
do {
|
||||||
{
|
|
||||||
const Qt::CheckState checkState = box.checkState();
|
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 std::array titles = {"unChecked", "partiallyChecked", "checked"};
|
||||||
const QString snapShotTitle = titles[checkState];
|
const QString snapShotTitle = titles[checkState];
|
||||||
@ -490,7 +497,14 @@ void tst_Widgets::tst_QRadioButton()
|
|||||||
QFETCH(QString,text);
|
QFETCH(QString,text);
|
||||||
QFETCH(bool,hasIcon);
|
QFETCH(bool,hasIcon);
|
||||||
|
|
||||||
QRadioButton button1(testWindow());
|
class RadioButton : public QRadioButton
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
using QRadioButton::QRadioButton;
|
||||||
|
using QRadioButton::initStyleOption;
|
||||||
|
};
|
||||||
|
|
||||||
|
RadioButton button1(testWindow());
|
||||||
|
|
||||||
if (!text.isEmpty())
|
if (!text.isEmpty())
|
||||||
button1.setText(text);
|
button1.setText(text);
|
||||||
@ -500,7 +514,7 @@ void tst_Widgets::tst_QRadioButton()
|
|||||||
|
|
||||||
button1.setChecked(false);
|
button1.setChecked(false);
|
||||||
|
|
||||||
QRadioButton button2(testWindow());
|
RadioButton button2(testWindow());
|
||||||
|
|
||||||
if (!text.isEmpty())
|
if (!text.isEmpty())
|
||||||
button2.setText(text);
|
button2.setText(text);
|
||||||
@ -517,7 +531,10 @@ void tst_Widgets::tst_QRadioButton()
|
|||||||
testWindow()->setLayout(&box);
|
testWindow()->setLayout(&box);
|
||||||
takeStandardSnapshots();
|
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);
|
QTest::mousePress(&button1,Qt::MouseButton::LeftButton, Qt::KeyboardModifiers(), clickTarget,0);
|
||||||
QVERIFY(button1.isDown());
|
QVERIFY(button1.isDown());
|
||||||
QBASELINE_CHECK_DEFERRED(takeSnapshot(), "pressUnchecked");
|
QBASELINE_CHECK_DEFERRED(takeSnapshot(), "pressUnchecked");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user