diff options
Diffstat (limited to 'tests/baseline/stylesheet/tst_baseline_stylesheet.cpp')
-rw-r--r-- | tests/baseline/stylesheet/tst_baseline_stylesheet.cpp | 127 |
1 files changed, 91 insertions, 36 deletions
diff --git a/tests/baseline/stylesheet/tst_baseline_stylesheet.cpp b/tests/baseline/stylesheet/tst_baseline_stylesheet.cpp index 99b21b4bb5..67a618988b 100644 --- a/tests/baseline/stylesheet/tst_baseline_stylesheet.cpp +++ b/tests/baseline/stylesheet/tst_baseline_stylesheet.cpp @@ -1,30 +1,5 @@ -/**************************************************************************** -** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only #include <qbaselinetest.h> #include <qwidgetbaselinetest.h> @@ -49,6 +24,12 @@ private slots: void tst_QScrollArea_data(); void tst_QScrollArea(); + void tst_QTreeView_data(); + void tst_QTreeView(); + + void tst_QHeaderView_data(); + void tst_QHeaderView(); + private: QDir styleSheetDir; }; @@ -85,7 +66,7 @@ void tst_Stylesheet::loadTestFiles() for (const auto &qssFile : qssFiles) { QFileInfo fileInfo(qssFile); QFile file(qssFile); - file.open(QFile::ReadOnly); + QVERIFY(file.open(QFile::ReadOnly)); QString styleSheet = QString::fromUtf8(file.readAll()); QBaselineTest::newRow(fileInfo.baseName().toUtf8()) << styleSheet; } @@ -98,7 +79,7 @@ void tst_Stylesheet::tst_QToolButton_data() void tst_Stylesheet::tst_QToolButton() { - const QIcon fileIcon = QApplication::style()->standardIcon(QStyle::SP_FileIcon); + const QIcon trashIcon = QApplication::style()->standardIcon(QStyle::SP_TrashIcon); QVBoxLayout *vbox = new QVBoxLayout; @@ -107,8 +88,8 @@ void tst_Stylesheet::tst_QToolButton() Qt::ToolButtonTextUnderIcon, Qt::ToolButtonTextBesideIcon}) { QToolButton *normal = new QToolButton; normal->setToolButtonStyle(buttonStyle); - normal->setText("Text"); - normal->setIcon(fileIcon); + normal->setText("Norm"); + normal->setIcon(trashIcon); normalButtons->addWidget(normal); } vbox->addLayout(normalButtons); @@ -116,7 +97,7 @@ void tst_Stylesheet::tst_QToolButton() QHBoxLayout *arrowButtons = new QHBoxLayout; for (const auto &arrowType : {Qt::LeftArrow, Qt::RightArrow, Qt::UpArrow, Qt::DownArrow}) { QToolButton *arrow = new QToolButton; - arrow->setText("Text"); + arrow->setText("Arrs"); arrow->setArrowType(arrowType); arrowButtons->addWidget(arrow); } @@ -126,7 +107,7 @@ void tst_Stylesheet::tst_QToolButton() for (const auto &buttonStyle : {Qt::ToolButtonTextOnly, Qt::ToolButtonTextUnderIcon, Qt::ToolButtonTextBesideIcon}) { QToolButton *arrow = new QToolButton; - arrow->setText("Text"); + arrow->setText("ArrTxt"); arrow->setArrowType(Qt::UpArrow); arrow->setToolButtonStyle(buttonStyle); arrowWithTextButtons->addWidget(arrow); @@ -137,8 +118,8 @@ void tst_Stylesheet::tst_QToolButton() for (const auto &popupMode : {QToolButton::InstantPopup, QToolButton::MenuButtonPopup, QToolButton::DelayedPopup}) { QToolButton *menuButton = new QToolButton; - menuButton->setText("Text"); - menuButton->setIcon(fileIcon); + menuButton->setText("PppMd"); + menuButton->setIcon(trashIcon); QMenu *menuButtonMenu = new QMenu; menuButtonMenu->addAction(QIcon(":/icons/align-left.png"), "Left"); menuButtonMenu->addAction(QIcon(":/icons/align-right.png"), "Right"); @@ -170,13 +151,87 @@ void tst_Stylesheet::tst_QScrollArea() QBASELINE_TEST(takeSnapshot()); } +void tst_Stylesheet::tst_QTreeView_data() +{ + loadTestFiles(); +} + +void tst_Stylesheet::tst_QTreeView() +{ + QHBoxLayout *layout = new QHBoxLayout; + QTreeWidget *tw = new QTreeWidget(); + tw->header()->hide(); + layout->addWidget(tw); + + enum { + Unchecked = 0, + Checked = 1, + Children = 2, + Disabled = 3, + CheckedDisabled = 4, + ChildrenDisabled = 5, + NConfigs + }; + + for (int i = 0; i < NConfigs; ++i) { + QTreeWidgetItem *topLevelItem = new QTreeWidgetItem(tw, QStringList{QString("top %1").arg(i)}); + switch (i) { + case Unchecked: + case Disabled: + topLevelItem->setCheckState(0, Qt::Unchecked); + break; + case Checked: + case CheckedDisabled: + topLevelItem->setCheckState(0, Qt::Checked); + break; + case Children: + case ChildrenDisabled: + topLevelItem->setCheckState(0, Qt::PartiallyChecked); + topLevelItem->setExpanded(true); + for (int j = 0; j < 2; ++j) { + QTreeWidgetItem *childItem = new QTreeWidgetItem(topLevelItem, QStringList{QString("child %1").arg(j)}); + childItem->setCheckState(0, j % 2 ? Qt::Unchecked : Qt::Checked); + } + break; + } + topLevelItem->setDisabled(i >= Disabled); + } + testWindow()->setLayout(layout); + tw->setRootIsDecorated(true); + makeVisible(); + + QBASELINE_CHECK_DEFERRED(takeSnapshot(), "rootDecorated"); + tw->setRootIsDecorated(false); + QBASELINE_CHECK_DEFERRED(takeSnapshot(), "rootNotDecorated"); + + tw->topLevelItem(Children)->child(0)->setSelected(true); + QBASELINE_CHECK_DEFERRED(takeSnapshot(), "itemSelected"); +} + +void tst_Stylesheet::tst_QHeaderView_data() +{ + loadTestFiles(); +} + +void tst_Stylesheet::tst_QHeaderView() +{ + QHBoxLayout *layout = new QHBoxLayout; + QTableWidget *tw = new QTableWidget(10, 10); + tw->setCurrentCell(1, 1); + layout->addWidget(tw); + testWindow()->setLayout(layout); + makeVisible(); + QBASELINE_TEST(takeSnapshot()); +} + #define main _realmain QTEST_MAIN(tst_Stylesheet) #undef main int main(int argc, char *argv[]) { - qSetGlobalQHashSeed(0); // Avoid rendering variations caused by QHash randomization + // Avoid rendering variations caused by QHash randomization + QHashSeed::setDeterministicGlobalSeed(); QBaselineTest::handleCmdLineArgs(&argc, &argv); return _realmain(argc, argv); |