diff options
Diffstat (limited to 'tests/auto/widgets/itemviews/qlistwidget/tst_qlistwidget.cpp')
-rw-r--r-- | tests/auto/widgets/itemviews/qlistwidget/tst_qlistwidget.cpp | 493 |
1 files changed, 241 insertions, 252 deletions
diff --git a/tests/auto/widgets/itemviews/qlistwidget/tst_qlistwidget.cpp b/tests/auto/widgets/itemviews/qlistwidget/tst_qlistwidget.cpp index fe2ede4183..67d8764b61 100644 --- a/tests/auto/widgets/itemviews/qlistwidget/tst_qlistwidget.cpp +++ b/tests/auto/widgets/itemviews/qlistwidget/tst_qlistwidget.cpp @@ -26,22 +26,23 @@ ** ****************************************************************************/ - -#include <QtTest/QtTest> -#include <QtGui/QtGui> -#include <QtWidgets/QtWidgets> -#include <qlist.h> +#include <QCompleter> +#include <QHBoxLayout> +#include <QLineEdit> +#include <QListWidget> #include <QSignalSpy> - -#include <qlistwidget.h> +#include <QStyledItemDelegate> +#include <QTest> #include <private/qlistwidget_p.h> +using IntList = QVector<int>; + class tst_QListWidget : public QObject { Q_OBJECT public: - tst_QListWidget(); + tst_QListWidget() = default; enum ModelChanged { RowsAboutToBeInserted, @@ -144,13 +145,18 @@ protected slots: void columnsRemoved(const QModelIndex &parent, int first, int last) { modelChanged(ColumnsRemoved, parent, first, last); } - void modelChanged(ModelChanged change, const QModelIndex &parent, int first, int last); + void modelChanged(ModelChanged change, const QModelIndex &parent, int first, int last) + { + rcParent[change] = parent; + rcFirst[change] = first; + rcLast[change] = last; + } private: - QListWidget *testWidget; - QVector<QModelIndex> rcParent; - QVector<int> rcFirst; - QVector<int> rcLast; + QListWidget *testWidget = nullptr; + QVector<QModelIndex> rcParent{8}; + QVector<int> rcFirst = QVector<int>(8, 0); + QVector<int> rcLast = QVector<int>(8, 0); void populate(); void checkDefaultValues(); @@ -168,11 +174,12 @@ void tst_QListWidget::moveRowsInvalid_data() const auto createWidget = []() -> QListWidget* { QListWidget* result = new QListWidget; - result->addItems(QStringList{"A", "B", "C", "D", "E", "F"}); + result->addItems({"A", "B", "C", "D", "E", "F"}); return result; }; + constexpr int rowCount = 6; - QTest::addRow("destination_equal_source") << createWidget() << QModelIndex() << 0 << 1 << QModelIndex() << 1; + QTest::addRow("destination_equal_source") << createWidget() << QModelIndex() << 0 << 1 << QModelIndex() << 0; QTest::addRow("count_equal_0") << createWidget() << QModelIndex() << 0 << 0 << QModelIndex() << 2; QListWidget* tempWidget = createWidget(); QTest::addRow("move_child") << tempWidget << tempWidget->model()->index(0, 0) << 0 << 1 << QModelIndex() << 2; @@ -181,10 +188,11 @@ void tst_QListWidget::moveRowsInvalid_data() QTest::addRow("negative_count") << createWidget() << QModelIndex() << 0 << -1 << QModelIndex() << 2; QTest::addRow("negative_source_row") << createWidget() << QModelIndex() << -1 << 1 << QModelIndex() << 2; QTest::addRow("negative_destination_row") << createWidget() << QModelIndex() << 0 << 1 << QModelIndex() << -1; - QTest::addRow("source_row_equal_rowCount") << createWidget() << QModelIndex() << 6 << 1 << QModelIndex() << 1; - QTest::addRow("destination_row_greater_rowCount") << createWidget() << QModelIndex() << 0 << 1 << QModelIndex() << 6 + 1; + QTest::addRow("source_row_equal_rowCount") << createWidget() << QModelIndex() << rowCount << 1 << QModelIndex() << 1; + QTest::addRow("source_row_equal_destination_row") << createWidget() << QModelIndex() << 2 << 1 << QModelIndex() << 2; + QTest::addRow("source_row_equal_destination_row_plus1") << createWidget() << QModelIndex() << 2 << 1 << QModelIndex() << 3; + QTest::addRow("destination_row_greater_rowCount") << createWidget() << QModelIndex() << 0 << 1 << QModelIndex() << rowCount + 1; QTest::addRow("move_row_within_source_range") << createWidget() << QModelIndex() << 0 << 3 << QModelIndex() << 2; - QTest::addRow("destination_row_before_0") << createWidget() << QModelIndex() << 1 << 1 << QModelIndex() << 0; } void tst_QListWidget::moveRowsInvalid() @@ -215,20 +223,20 @@ void tst_QListWidget::moveRows_data() QTest::newRow("1_Item_from_top_to_middle") << 0 << 1 << 3 << QStringList{"B", "C", "A", "D", "E", "F"}; QTest::newRow("1_Item_from_top_to_bottom") << 0 << 1 << 6 << QStringList{"B", "C", "D", "E", "F", "A"}; - QTest::newRow("1_Item_from_middle_to_top") << 2 << 1 << 1 << QStringList{"C", "A", "B", "D", "E", "F"}; - QTest::newRow("1_Item_from_bottom_to_middle") << 5 << 1 << 3 << QStringList{"A", "B", "F", "C", "D", "E"}; - QTest::newRow("1_Item_from_bottom to_top") << 5 << 1 << 1 << QStringList{"F", "A", "B", "C", "D", "E"}; + QTest::newRow("1_Item_from_middle_to_top") << 2 << 1 << 0 << QStringList{"C", "A", "B", "D", "E", "F"}; + QTest::newRow("1_Item_from_bottom_to_middle") << 5 << 1 << 2 << QStringList{"A", "B", "F", "C", "D", "E"}; + QTest::newRow("1_Item_from_bottom to_top") << 5 << 1 << 0 << QStringList{"F", "A", "B", "C", "D", "E"}; QTest::newRow("1_Item_from_middle_to_bottom") << 2 << 1 << 6 << QStringList{"A", "B", "D", "E", "F", "C"}; - QTest::newRow("1_Item_from_middle_to_middle_before") << 2 << 1 << 1 << QStringList{"C", "A", "B", "D", "E", "F"}; + QTest::newRow("1_Item_from_middle_to_middle_before") << 2 << 1 << 1 << QStringList{"A", "C", "B", "D", "E", "F"}; QTest::newRow("1_Item_from_middle_to_middle_after") << 2 << 1 << 4 << QStringList{"A", "B", "D", "C", "E", "F"}; QTest::newRow("2_Items_from_top_to_middle") << 0 << 2 << 3 << QStringList{"C", "A", "B", "D", "E", "F"}; QTest::newRow("2_Items_from_top_to_bottom") << 0 << 2 << 6 << QStringList{"C", "D", "E", "F", "A", "B"}; - QTest::newRow("2_Items_from_middle_to_top") << 2 << 2 << 1 << QStringList{"C", "D", "A", "B", "E", "F"}; - QTest::newRow("2_Items_from_bottom_to_middle") << 4 << 2 << 3 << QStringList{"A", "B", "E", "F", "C", "D"}; - QTest::newRow("2_Items_from_bottom_to_top") << 4 << 2 << 1 << QStringList{"E", "F", "A", "B", "C", "D"}; + QTest::newRow("2_Items_from_middle_to_top") << 2 << 2 << 0 << QStringList{"C", "D", "A", "B", "E", "F"}; + QTest::newRow("2_Items_from_bottom_to_middle") << 4 << 2 << 2 << QStringList{"A", "B", "E", "F", "C", "D"}; + QTest::newRow("2_Items_from_bottom_to_top") << 4 << 2 << 0 << QStringList{"E", "F", "A", "B", "C", "D"}; QTest::newRow("2_Items_from_middle_to_bottom") << 2 << 2 << 6 << QStringList{"A", "B", "E", "F", "C", "D"}; - QTest::newRow("2_Items_from_middle_to_middle_before") << 3 << 2 << 2 << QStringList{"A", "D", "E", "B", "C", "F"}; + QTest::newRow("2_Items_from_middle_to_middle_before") << 3 << 2 << 1 << QStringList{"A", "D", "E", "B", "C", "F"}; QTest::newRow("2_Items_from_middle_to_middle_after") << 1 << 2 << 5 << QStringList{"A", "D", "E", "B", "C", "F"}; } @@ -259,35 +267,32 @@ void tst_QListWidget::moveRows() } -typedef QList<int> IntList; - -tst_QListWidget::tst_QListWidget(): testWidget(0), rcParent(8), rcFirst(8,0), rcLast(8,0) -{ -} - void tst_QListWidget::initTestCase() { qRegisterMetaType<QListWidgetItem*>("QListWidgetItem*"); - testWidget = new QListWidget(); + qRegisterMetaType<QList<QPersistentModelIndex>>("QList<QPersistentModelIndex>"); + qRegisterMetaType<QAbstractItemModel::LayoutChangeHint>("QAbstractItemModel::LayoutChangeHint"); + + testWidget = new QListWidget; testWidget->show(); - connect(testWidget->model(), SIGNAL(rowsAboutToBeInserted(QModelIndex,int,int)), - this, SLOT(rowsAboutToBeInserted(QModelIndex,int,int))); - connect(testWidget->model(), SIGNAL(rowsInserted(QModelIndex,int,int)), - this, SLOT(rowsInserted(QModelIndex,int,int))); - connect(testWidget->model(), SIGNAL(rowsAboutToBeRemoved(QModelIndex,int,int)), - this, SLOT(rowsAboutToBeRemoved(QModelIndex,int,int))); - connect(testWidget->model(), SIGNAL(rowsRemoved(QModelIndex,int,int)), - this, SLOT(rowsRemoved(QModelIndex,int,int))); - - connect(testWidget->model(), SIGNAL(columnsAboutToBeInserted(QModelIndex,int,int)), - this, SLOT(columnsAboutToBeInserted(QModelIndex,int,int))); - connect(testWidget->model(), SIGNAL(columnsInserted(QModelIndex,int,int)), - this, SLOT(columnsInserted(QModelIndex,int,int))); - connect(testWidget->model(), SIGNAL(columnsAboutToBeRemoved(QModelIndex,int,int)), - this, SLOT(columnsAboutToBeRemoved(QModelIndex,int,int))); - connect(testWidget->model(), SIGNAL(columnsRemoved(QModelIndex,int,int)), - this, SLOT(columnsRemoved(QModelIndex,int,int))); + connect(testWidget->model(), &QAbstractItemModel::rowsAboutToBeInserted, + this, &tst_QListWidget::rowsAboutToBeInserted); + connect(testWidget->model(), &QAbstractItemModel::rowsInserted, + this, &tst_QListWidget::rowsInserted); + connect(testWidget->model(), &QAbstractItemModel::rowsAboutToBeRemoved, + this, &tst_QListWidget::rowsAboutToBeRemoved); + connect(testWidget->model(), &QAbstractItemModel::rowsRemoved, + this, &tst_QListWidget::rowsRemoved); + + connect(testWidget->model(), &QAbstractItemModel::columnsAboutToBeInserted, + this, &tst_QListWidget::columnsAboutToBeInserted); + connect(testWidget->model(), &QAbstractItemModel::columnsInserted, + this, &tst_QListWidget::columnsInserted); + connect(testWidget->model(), &QAbstractItemModel::columnsAboutToBeRemoved, + this, &tst_QListWidget::columnsAboutToBeRemoved); + connect(testWidget->model(), &QAbstractItemModel::columnsRemoved, + this, &tst_QListWidget::columnsRemoved); checkDefaultValues(); } @@ -300,7 +305,7 @@ void tst_QListWidget::cleanupTestCase() void tst_QListWidget::init() { testWidget->clear(); - QCoreApplication::sendPostedEvents(0, QEvent::DeferredDelete); + QCoreApplication::sendPostedEvents(nullptr, QEvent::DeferredDelete); } void tst_QListWidget::checkDefaultValues() @@ -317,7 +322,7 @@ void tst_QListWidget::populate() addItems(); setItemHidden(); - testWidget->setCurrentIndex(testWidget->model()->index(0,0)); + testWidget->setCurrentIndex(testWidget->model()->index(0, 0)); // setCurrentItem(); // setCurrentRow(); @@ -329,7 +334,7 @@ void tst_QListWidget::addItem() const QString label = QString::number(count); testWidget->addItem(label); QCOMPARE(testWidget->count(), ++count); - QCOMPARE(testWidget->item(testWidget->count()-1)->text(), label); + QCOMPARE(testWidget->item(testWidget->count() - 1)->text(), label); } void tst_QListWidget::addItem2() @@ -337,7 +342,7 @@ void tst_QListWidget::addItem2() int count = testWidget->count(); // Boundary Checking - testWidget->addItem(0); + testWidget->addItem(nullptr); QCOMPARE(testWidget->count(), count); QListWidgetItem *item = new QListWidgetItem(QString::number(count)); @@ -356,12 +361,11 @@ void tst_QListWidget::addItems() testWidget->addItems(QStringList()); QCOMPARE(testWidget->count(), count); - QStringList stringList; QString label = QString::number(count); - stringList << QString::number(testWidget->count() + 1) - << QString::number(testWidget->count() + 2) - << QString::number(testWidget->count() + 3) - << label; + const QStringList stringList{QString::number(testWidget->count() + 1), + QString::number(testWidget->count() + 2), + QString::number(testWidget->count() + 3), + label}; testWidget->addItems(stringList); QCOMPARE(testWidget->count(), count + stringList.count()); QCOMPARE(testWidget->item(testWidget->count()-1)->text(), label); @@ -371,7 +375,7 @@ void tst_QListWidget::addItems() void tst_QListWidget::openPersistentEditor() { // Boundary checking - testWidget->openPersistentEditor(0); + testWidget->openPersistentEditor(nullptr); QListWidgetItem *item = new QListWidgetItem(QString::number(testWidget->count())); testWidget->openPersistentEditor(item); @@ -385,7 +389,7 @@ void tst_QListWidget::closePersistentEditor() { // Boundary checking int childCount = testWidget->viewport()->children().count(); - testWidget->closePersistentEditor(0); + testWidget->closePersistentEditor(nullptr); QListWidgetItem *item = new QListWidgetItem(QString::number(testWidget->count())); testWidget->closePersistentEditor(item); QCOMPARE(childCount, testWidget->viewport()->children().count()); @@ -397,7 +401,7 @@ void tst_QListWidget::closePersistentEditor() // actual test childCount = testWidget->viewport()->children().count(); testWidget->closePersistentEditor(item); - QCoreApplication::sendPostedEvents(0, QEvent::DeferredDelete); + QCoreApplication::sendPostedEvents(nullptr, QEvent::DeferredDelete); QCOMPARE(testWidget->viewport()->children().count(), childCount - 1); } @@ -412,40 +416,33 @@ QT_WARNING_DISABLE_DEPRECATED QT_WARNING_POP #endif - int totalHidden = 0; - for (int i = 0; i < testWidget->model()->rowCount(); ++i) - if (testWidget->item(i)->isHidden()) - totalHidden++; - + auto countHidden = [](QListWidget *testWidget) + { + int totalHidden = 0; + for (int i = 0; i < testWidget->model()->rowCount(); ++i) { + if (testWidget->item(i)->isHidden()) + totalHidden++; + } + return totalHidden; + }; + const int totalHidden = countHidden(testWidget); QListWidgetItem *item = new QListWidgetItem(QString::number(testWidget->count())); testWidget->addItem(item); // Check that nothing else changed - int newTotal = 0; - for (int i = 0; i < testWidget->model()->rowCount(); ++i) - if (testWidget->item(i)->isHidden()) - newTotal++; - QCOMPARE(newTotal, totalHidden); + QCOMPARE(countHidden(testWidget), totalHidden); item->setHidden(true); QCOMPARE(item->isHidden(), true); // Check that nothing else changed - newTotal = 0; - for (int i = 0; i < testWidget->model()->rowCount(); ++i) - if (testWidget->item(i)->isHidden()) - newTotal++; - QCOMPARE(newTotal, totalHidden + 1); + QCOMPARE(countHidden(testWidget), totalHidden + 1); item->setHidden(false); QCOMPARE(item->isHidden(), false); // Check that nothing else changed - newTotal = 0; - for (int i = 0; i < testWidget->model()->rowCount(); ++i) - if (testWidget->item(i)->isHidden()) - newTotal++; - QCOMPARE(newTotal, totalHidden); + QCOMPARE(countHidden(testWidget), totalHidden); item->setHidden(true); } @@ -466,11 +463,11 @@ void tst_QListWidget::setCurrentItem() testWidget->addItem(QString::number(i)); // Boundary checking - testWidget->setCurrentItem((QListWidgetItem *)0); - QCOMPARE((QListWidgetItem *)0, testWidget->currentItem()); + testWidget->setCurrentItem(nullptr); + QVERIFY(!testWidget->currentItem()); QListWidgetItem item; testWidget->setCurrentItem(&item); - QCOMPARE((QListWidgetItem *)0, testWidget->currentItem()); + QVERIFY(!testWidget->currentItem()); // Make sure that currentItem changes to what is passed into setCurrentItem for (int i = 0; i < testWidget->count(); ++i) { @@ -555,7 +552,7 @@ void tst_QListWidget::editItem_data() void tst_QListWidget::editItem() { // Boundary checking - testWidget->editItem(0); + testWidget->editItem(nullptr); QListWidgetItem *item = new QListWidgetItem(QString::number(testWidget->count())); testWidget->editItem(item); @@ -593,8 +590,8 @@ void tst_QListWidget::findItems() populate(); - for (int i=0; i < testWidget->count(); ++i) - QCOMPARE(testWidget->findItems( (testWidget->item(i)->text()), Qt::MatchExactly).count(), 1); + for (int i = 0; i < testWidget->count(); ++i) + QCOMPARE(testWidget->findItems(testWidget->item(i)->text(), Qt::MatchExactly).count(), 1); } @@ -605,8 +602,7 @@ void tst_QListWidget::insertItem_data() QTest::addColumn<QString>("itemLabel"); QTest::addColumn<int>("expectedIndex"); - QStringList initialItems; - initialItems << "foo" << "bar"; + const QStringList initialItems{"foo", "bar"}; QTest::newRow("Insert less then 0") << initialItems << -1 << "inserted" << 0; QTest::newRow("Insert at 0") << initialItems << 0 << "inserted" << 0; @@ -669,7 +665,7 @@ void tst_QListWidget::insertItems() if (insertType == 3) { QStringList strings; - for (int i=0; i<rowCount; ++i) + for (int i = 0; i < rowCount; ++i) strings << QString::number(i); testWidget->insertItems(0, strings); } else { @@ -685,7 +681,7 @@ void tst_QListWidget::insertItems() testWidget->insertItem(r, QString::number(r)); } else if (insertType == 3) { QStringList strings; - for (int i=0; i<rowCount; ++i) + for (int i = 0; i < rowCount; ++i) strings << QString::number(i); testWidget->insertItems(0, strings); break; @@ -702,7 +698,7 @@ void tst_QListWidget::insertItems() QCOMPARE(testWidget->item(r)->text(), QString::number(r)); // make sure all items have view set correctly - for (int i=0; i<testWidget->count(); ++i) + for (int i = 0; i < testWidget->count(); ++i) QCOMPARE(testWidget->item(i)->listWidget(), testWidget); QCOMPARE(itemChangedSpy.count(), 0); @@ -845,19 +841,19 @@ void tst_QListWidget::selectedItems_data() void tst_QListWidget::selectedItems() { QFETCH(int, itemCount); - QFETCH(IntList, hiddenRows); - QFETCH(IntList, selectedRows); - QFETCH(IntList, expectedRows); + QFETCH(const IntList, hiddenRows); + QFETCH(const IntList, selectedRows); + QFETCH(const IntList, expectedRows); QCOMPARE(testWidget->count(), 0); //insert items - for (int i=0; i<itemCount; ++i) + for (int i = 0; i < itemCount; ++i) new QListWidgetItem(QStringLiteral("Item") + QString::number(i), testWidget); //test the selection testWidget->setSelectionMode(QListWidget::SingleSelection); - for (int i=0; i<itemCount; ++i) { + for (int i = 0; i < itemCount; ++i) { QListWidgetItem *item = testWidget->item(i); item->setSelected(true); QVERIFY(item->isSelected()); @@ -871,20 +867,20 @@ void tst_QListWidget::selectedItems() //verify items are inserted QCOMPARE(testWidget->count(), itemCount); // hide items - foreach (int row, hiddenRows) + for (int row : hiddenRows) testWidget->item(row)->setHidden(true); // select items - foreach (int row, selectedRows) + for (int row : selectedRows) testWidget->item(row)->setSelected(true); // check that the correct number of items and the expected items are there QList<QListWidgetItem *> selectedItems = testWidget->selectedItems(); QCOMPARE(selectedItems.count(), expectedRows.count()); - foreach (int row, expectedRows) + for (int row : expectedRows) QVERIFY(selectedItems.contains(testWidget->item(row))); //check that isSelected agrees with selectedItems - for (int i=0; i<itemCount; ++i) { + for (int i = 0; i < itemCount; ++i) { QListWidgetItem *item = testWidget->item(i); if (item->isSelected()) QVERIFY(selectedItems.contains(item)); @@ -927,8 +923,6 @@ void tst_QListWidget::removeItems() QCOMPARE(testWidget->item(r)->text(), QString::number(r)); else QCOMPARE(testWidget->item(r)->text(), QString::number(r + removeRows)); - - } void tst_QListWidget::moveItemsPriv_data() @@ -967,8 +961,8 @@ void tst_QListWidget::moveItemsPriv() QListModel *model = qobject_cast<QListModel *>(testWidget->model()); QVERIFY(model); - QSignalSpy beginMoveSpy(model, SIGNAL(rowsAboutToBeMoved(QModelIndex,int,int,QModelIndex,int))); - QSignalSpy movedSpy(model, SIGNAL(rowsMoved(QModelIndex,int,int,QModelIndex,int))); + QSignalSpy beginMoveSpy(model, &QAbstractItemModel::rowsAboutToBeMoved); + QSignalSpy movedSpy(model, &QAbstractItemModel::rowsMoved); model->move(srcRow, dstRow); if (shouldHaveSignaled) { @@ -1034,31 +1028,31 @@ void tst_QListWidget::itemStreaming() void tst_QListWidget::sortItems_data() { - QTest::addColumn<int>("order"); + QTest::addColumn<Qt::SortOrder>("order"); QTest::addColumn<QVariantList>("initialList"); QTest::addColumn<QVariantList>("expectedList"); QTest::addColumn<IntList>("expectedRows"); QTest::newRow("ascending strings") - << static_cast<int>(Qt::AscendingOrder) + << Qt::AscendingOrder << (QVariantList() << QString("c") << QString("d") << QString("a") << QString("b")) << (QVariantList() << QString("a") << QString("b") << QString("c") << QString("d")) << (IntList() << 2 << 3 << 0 << 1); QTest::newRow("descending strings") - << static_cast<int>(Qt::DescendingOrder) + << Qt::DescendingOrder << (QVariantList() << QString("c") << QString("d") << QString("a") << QString("b")) << (QVariantList() << QString("d") << QString("c") << QString("b") << QString("a")) << (IntList() << 1 << 0 << 3 << 2); QTest::newRow("ascending numbers") - << static_cast<int>(Qt::AscendingOrder) + << Qt::AscendingOrder << (QVariantList() << 1 << 11 << 2 << 22) << (QVariantList() << 1 << 2 << 11 << 22) << (IntList() << 0 << 2 << 1 << 3); QTest::newRow("descending numbers") - << static_cast<int>(Qt::DescendingOrder) + << Qt::DescendingOrder << (QVariantList() << 1 << 11 << 2 << 22) << (QVariantList() << 22 << 11 << 2 << 1) << (IntList() << 3 << 1 << 2 << 0); @@ -1066,22 +1060,22 @@ void tst_QListWidget::sortItems_data() void tst_QListWidget::sortItems() { - QFETCH(int, order); - QFETCH(QVariantList, initialList); - QFETCH(QVariantList, expectedList); - QFETCH(IntList, expectedRows); + QFETCH(Qt::SortOrder, order); + QFETCH(const QVariantList, initialList); + QFETCH(const QVariantList, expectedList); + QFETCH(const IntList, expectedRows); - foreach (const QVariant &data, initialList) { + for (const QVariant &data : initialList) { QListWidgetItem *item = new QListWidgetItem(testWidget); item->setData(Qt::DisplayRole, data); } QAbstractItemModel *model = testWidget->model(); - QList<QPersistentModelIndex> persistent; + QVector<QPersistentModelIndex> persistent; for (int j = 0; j < model->rowCount(QModelIndex()); ++j) persistent << model->index(j, 0, QModelIndex()); - testWidget->sortItems(static_cast<Qt::SortOrder>(order)); + testWidget->sortItems(order); QCOMPARE(testWidget->count(), expectedList.count()); for (int i = 0; i < testWidget->count(); ++i) @@ -1093,7 +1087,7 @@ void tst_QListWidget::sortItems() void tst_QListWidget::sortHiddenItems_data() { - QTest::addColumn<int>("order"); + QTest::addColumn<Qt::SortOrder>("order"); QTest::addColumn<QStringList>("initialList"); QTest::addColumn<QStringList>("expectedList"); QTest::addColumn<IntList>("expectedRows"); @@ -1110,21 +1104,21 @@ void tst_QListWidget::sortHiddenItems_data() } QTest::newRow("descending order, 20 items") - << static_cast<int>(Qt::DescendingOrder) + << Qt::DescendingOrder << initial << expected << rowOrder << visible; QTest::newRow("ascending order") - << static_cast<int>(Qt::AscendingOrder) + << Qt::AscendingOrder << (QStringList() << "c" << "d" << "a" << "b") << (QStringList() << "a" << "b" << "c" << "d") << (IntList() << 2 << 3 << 0 << 1) << (IntList() << 1 << 0 << 1 << 0); QTest::newRow("descending order") - << static_cast<int>(Qt::DescendingOrder) + << Qt::DescendingOrder << (QStringList() << "c" << "d" << "a" << "b") << (QStringList() << "d" << "c" << "b" << "a") << (IntList() << 1 << 0 << 3 << 2) @@ -1133,7 +1127,7 @@ void tst_QListWidget::sortHiddenItems_data() void tst_QListWidget::sortHiddenItems() { - QFETCH(int, order); + QFETCH(Qt::SortOrder, order); QFETCH(QStringList, initialList); QFETCH(QStringList, expectedList); QFETCH(IntList, expectedRows); @@ -1144,14 +1138,14 @@ void tst_QListWidget::sortHiddenItems() tw->addItems(initialList); QAbstractItemModel *model = tw->model(); - QList<QPersistentModelIndex> persistent; + QVector<QPersistentModelIndex> persistent; for (int j = 0; j < model->rowCount(QModelIndex()); ++j) { persistent << model->index(j, 0, QModelIndex()); tw->setRowHidden(j, j & 1); // every odd is hidden } tw->setSortingEnabled(true); - tw->sortItems(static_cast<Qt::SortOrder>(order)); + tw->sortItems(order); QCOMPARE(tw->count(), expectedList.count()); for (int i = 0; i < tw->count(); ++i) { @@ -1165,50 +1159,35 @@ void tst_QListWidget::sortHiddenItems() delete tw; } -void tst_QListWidget::modelChanged(ModelChanged change, const QModelIndex &parent, - int first, int last) +class TestListWidget : public QListWidget { - rcParent[change] = parent; - rcFirst[change] = first; - rcLast[change] = last; -} - -class TestListWidget : public QListWidget { + Q_OBJECT public: - TestListWidget() : QListWidget() - { - - } - State getState() {return QListWidget::state();} - - void closeEditor(QWidget *w, QAbstractItemDelegate::EndEditHint hint) { - QListWidget::closeEditor(w, hint); - } + using QListWidget::QListWidget; + using QListWidget::state; + using QListWidget::closeEditor; + using QListWidget::mimeData; + using QListWidget::indexFromItem; - bool isEditingState(QListWidgetItem *item) { - Q_UNUSED(item); + bool isEditingState() const { return QListWidget::state() == QListWidget::EditingState; } - - using QListWidget::mimeData; - using QListWidget::indexFromItem; }; void tst_QListWidget::closeEditor() { TestListWidget w; - QStringList labels = (QStringList() << "a" << "b" << "c" << "d"); - w.addItems(labels); + w.addItems({"a", "b", "c", "d"}); QListWidgetItem *item = w.item(0); item->setFlags(item->flags() | Qt::ItemIsEditable); QVERIFY(item); w.editItem(item); - QVERIFY(w.isEditingState(item)); + QVERIFY(w.isEditingState()); w.reset(); - QVERIFY(!w.isEditingState(item)); + QVERIFY(!w.isEditingState()); } void tst_QListWidget::setData_data() @@ -1267,15 +1246,15 @@ void tst_QListWidget::setData() QCOMPARE(roles.count(), values.count()); - for (int manipulateModel=0; manipulateModel<2; ++manipulateModel) { + for (int manipulateModel = 0; manipulateModel < 2; ++manipulateModel) { testWidget->clear(); testWidget->insertItems(0, initialItems); QCOMPARE(testWidget->count(), initialItems.count()); - QSignalSpy itemChanged(testWidget, SIGNAL(itemChanged(QListWidgetItem*))); - QSignalSpy dataChanged(testWidget->model(), SIGNAL(dataChanged(QModelIndex,QModelIndex))); + QSignalSpy itemChanged(testWidget, &QListWidget::itemChanged); + QSignalSpy dataChanged(testWidget->model(), &QAbstractItemModel::dataChanged); - for (int i=0; i < roles.count(); ++i) { + for (int i = 0; i < roles.count(); ++i) { if (manipulateModel) testWidget->model()->setData( testWidget->model()->index(itemIndex, 0, testWidget->rootIndex()), @@ -1286,7 +1265,7 @@ void tst_QListWidget::setData() } // make sure the data is actually set - for (int i=0; i < roles.count(); ++i) + for (int i = 0; i < roles.count(); ++i) QCOMPARE(testWidget->item(itemIndex)->data(roles.at(i)), values.at(i)); // make sure we get the right number of emits @@ -1297,50 +1276,50 @@ void tst_QListWidget::setData() void tst_QListWidget::insertItemsWithSorting_data() { - QTest::addColumn<int>("sortOrder"); + QTest::addColumn<Qt::SortOrder>("sortOrder"); QTest::addColumn<QStringList>("initialItems"); QTest::addColumn<QStringList>("insertItems"); QTest::addColumn<QStringList>("expectedItems"); QTest::addColumn<IntList>("expectedRows"); QTest::newRow("() + (a) = (a)") - << static_cast<int>(Qt::AscendingOrder) + << Qt::AscendingOrder << QStringList() << (QStringList() << "a") << (QStringList() << "a") << IntList(); QTest::newRow("() + (c, b, a) = (a, b, c)") - << static_cast<int>(Qt::AscendingOrder) + << Qt::AscendingOrder << QStringList() << (QStringList() << "c" << "b" << "a") << (QStringList() << "a" << "b" << "c") << IntList(); QTest::newRow("() + (a, b, c) = (c, b, a)") - << static_cast<int>(Qt::DescendingOrder) + << Qt::DescendingOrder << QStringList() << (QStringList() << "a" << "b" << "c") << (QStringList() << "c" << "b" << "a") << IntList(); QTest::newRow("(a) + (b) = (a, b)") - << static_cast<int>(Qt::AscendingOrder) + << Qt::AscendingOrder << QStringList("a") << (QStringList() << "b") << (QStringList() << "a" << "b") << (IntList() << 0); QTest::newRow("(a) + (b) = (b, a)") - << static_cast<int>(Qt::DescendingOrder) + << Qt::DescendingOrder << QStringList("a") << (QStringList() << "b") << (QStringList() << "b" << "a") << (IntList() << 1); QTest::newRow("(a, c, b) + (d) = (a, b, c, d)") - << static_cast<int>(Qt::AscendingOrder) + << Qt::AscendingOrder << (QStringList() << "a" << "c" << "b") << (QStringList() << "d") << (QStringList() << "a" << "b" << "c" << "d") << (IntList() << 0 << 1 << 2); QTest::newRow("(b, c, a) + (d) = (d, c, b, a)") - << static_cast<int>(Qt::DescendingOrder) + << Qt::DescendingOrder << (QStringList() << "b" << "c" << "a") << (QStringList() << "d") << (QStringList() << "d" << "c" << "b" << "a") @@ -1350,38 +1329,38 @@ void tst_QListWidget::insertItemsWithSorting_data() IntList reverseRows; QStringList ascendingItems; QStringList reverseItems; - for (int i = 'a'; i <= 'z'; ++i) { + for (char i = 'a'; i <= 'z'; ++i) { ascendingItems << QString(1, QLatin1Char(i)); reverseItems << QString(1, QLatin1Char('z' - i + 'a')); ascendingRows << i - 'a'; reverseRows << 'z' - i + 'a'; } QTest::newRow("() + (sorted items) = (sorted items)") - << static_cast<int>(Qt::AscendingOrder) + << Qt::AscendingOrder << QStringList() << ascendingItems << ascendingItems << IntList(); QTest::newRow("(sorted items) + () = (sorted items)") - << static_cast<int>(Qt::AscendingOrder) + << Qt::AscendingOrder << ascendingItems << QStringList() << ascendingItems << ascendingRows; QTest::newRow("() + (ascending items) = (reverse items)") - << static_cast<int>(Qt::DescendingOrder) + << Qt::DescendingOrder << QStringList() << ascendingItems << reverseItems << IntList(); QTest::newRow("(reverse items) + () = (ascending items)") - << static_cast<int>(Qt::AscendingOrder) + << Qt::AscendingOrder << reverseItems << QStringList() << ascendingItems << ascendingRows; QTest::newRow("(reverse items) + () = (reverse items)") - << static_cast<int>(Qt::DescendingOrder) + << Qt::DescendingOrder << reverseItems << QStringList() << reverseItems @@ -1391,16 +1370,16 @@ void tst_QListWidget::insertItemsWithSorting_data() void tst_QListWidget::insertItemsWithSorting() { - QFETCH(int, sortOrder); - QFETCH(QStringList, initialItems); - QFETCH(QStringList, insertItems); - QFETCH(QStringList, expectedItems); - QFETCH(IntList, expectedRows); + QFETCH(Qt::SortOrder, sortOrder); + QFETCH(const QStringList, initialItems); + QFETCH(const QStringList, insertItems); + QFETCH(const QStringList, expectedItems); + QFETCH(const IntList, expectedRows); for (int method = 0; method < 5; ++method) { QListWidget w; w.setSortingEnabled(true); - w.sortItems(static_cast<Qt::SortOrder>(sortOrder)); + w.sortItems(sortOrder); w.addItems(initialItems); QAbstractItemModel *model = w.model(); @@ -1411,8 +1390,8 @@ void tst_QListWidget::insertItemsWithSorting() switch (method) { case 0: // insert using item constructor - for (int i = 0; i < insertItems.size(); ++i) - new QListWidgetItem(insertItems.at(i), &w); + for (const QString &str : insertItems) + new QListWidgetItem(str, &w); break; case 1: // insert using insertItems() @@ -1420,8 +1399,8 @@ void tst_QListWidget::insertItemsWithSorting() break; case 2: // insert using insertItem() - for (int i = 0; i < insertItems.size(); ++i) - w.insertItem(0, insertItems.at(i)); + for (const QString &str : insertItems) + w.insertItem(0, str); break; case 3: // insert using addItems() @@ -1429,8 +1408,8 @@ void tst_QListWidget::insertItemsWithSorting() break; case 4: // insert using addItem() - for (int i = 0; i < insertItems.size(); ++i) - w.addItem(insertItems.at(i)); + for (const QString &str : insertItems) + w.addItem(str); break; } QCOMPARE(w.count(), expectedItems.count()); @@ -1444,7 +1423,7 @@ void tst_QListWidget::insertItemsWithSorting() void tst_QListWidget::changeDataWithSorting_data() { - QTest::addColumn<int>("sortOrder"); + QTest::addColumn<Qt::SortOrder>("sortOrder"); QTest::addColumn<QStringList>("initialItems"); QTest::addColumn<int>("itemIndex"); QTest::addColumn<QString>("newValue"); @@ -1453,49 +1432,49 @@ void tst_QListWidget::changeDataWithSorting_data() QTest::addColumn<bool>("reorderingExpected"); QTest::newRow("change a to b in (a)") - << static_cast<int>(Qt::AscendingOrder) + << Qt::AscendingOrder << (QStringList() << "a") << 0 << "b" << (QStringList() << "b") << (IntList() << 0) << false; QTest::newRow("change a to b in (a, c)") - << static_cast<int>(Qt::AscendingOrder) + << Qt::AscendingOrder << (QStringList() << "a" << "c") << 0 << "b" << (QStringList() << "b" << "c") << (IntList() << 0 << 1) << false; QTest::newRow("change a to c in (a, b)") - << static_cast<int>(Qt::AscendingOrder) + << Qt::AscendingOrder << (QStringList() << "a" << "b") << 0 << "c" << (QStringList() << "b" << "c") << (IntList() << 1 << 0) << true; QTest::newRow("change c to a in (c, b)") - << static_cast<int>(Qt::DescendingOrder) + << Qt::DescendingOrder << (QStringList() << "c" << "b") << 0 << "a" << (QStringList() << "b" << "a") << (IntList() << 1 << 0) << true; QTest::newRow("change e to i in (a, c, e, g)") - << static_cast<int>(Qt::AscendingOrder) + << Qt::AscendingOrder << (QStringList() << "a" << "c" << "e" << "g") << 2 << "i" << (QStringList() << "a" << "c" << "g" << "i") << (IntList() << 0 << 1 << 3 << 2) << true; QTest::newRow("change e to a in (c, e, g, i)") - << static_cast<int>(Qt::AscendingOrder) + << Qt::AscendingOrder << (QStringList() << "c" << "e" << "g" << "i") << 1 << "a" << (QStringList() << "a" << "c" << "g" << "i") << (IntList() << 1 << 0 << 2 << 3) << true; QTest::newRow("change e to f in (c, e, g, i)") - << static_cast<int>(Qt::AscendingOrder) + << Qt::AscendingOrder << (QStringList() << "c" << "e" << "g" << "i") << 1 << "f" << (QStringList() << "c" << "f" << "g" << "i") @@ -1535,11 +1514,25 @@ void tst_QListWidget::itemData() QCOMPARE(flags.count(), 6); for (int i = 0; i < 4; ++i) QCOMPARE(flags[Qt::UserRole + i].toString(), QString::number(i + 1)); + + item.setBackground(QBrush(Qt::red)); + item.setForeground(QBrush(Qt::red)); + item.setSizeHint(QSize(10, 10)); + QCOMPARE(item.data(Qt::BackgroundRole), QVariant(QBrush(Qt::red))); + QCOMPARE(item.data(Qt::ForegroundRole), QVariant(QBrush(Qt::red))); + QCOMPARE(item.data(Qt::SizeHintRole), QVariant(QSize(10, 10))); + // an empty brush should result in a QVariant() + item.setBackground(QBrush()); + item.setForeground(QBrush()); + item.setSizeHint(QSize()); + QCOMPARE(item.data(Qt::BackgroundRole), QVariant()); + QCOMPARE(item.data(Qt::ForegroundRole), QVariant()); + QCOMPARE(item.data(Qt::SizeHintRole), QVariant()); } void tst_QListWidget::changeDataWithSorting() { - QFETCH(int, sortOrder); + QFETCH(Qt::SortOrder, sortOrder); QFETCH(QStringList, initialItems); QFETCH(int, itemIndex); QFETCH(QString, newValue); @@ -1549,16 +1542,16 @@ void tst_QListWidget::changeDataWithSorting() QListWidget w; w.setSortingEnabled(true); - w.sortItems(static_cast<Qt::SortOrder>(sortOrder)); + w.sortItems(sortOrder); w.addItems(initialItems); QAbstractItemModel *model = w.model(); - QList<QPersistentModelIndex> persistent; + QVector<QPersistentModelIndex> persistent; for (int j = 0; j < model->rowCount(QModelIndex()); ++j) persistent << model->index(j, 0, QModelIndex()); - QSignalSpy dataChangedSpy(model, SIGNAL(dataChanged(QModelIndex,QModelIndex))); - QSignalSpy layoutChangedSpy(model, SIGNAL(layoutChanged())); + QSignalSpy dataChangedSpy(model, &QAbstractItemModel::dataChanged); + QSignalSpy layoutChangedSpy(model, &QAbstractItemModel::layoutChanged); QListWidgetItem *item = w.item(itemIndex); item->setText(newValue); @@ -1566,7 +1559,7 @@ void tst_QListWidget::changeDataWithSorting() QCOMPARE(w.item(i)->text(), expectedItems.at(i)); for (int j = 0; j < persistent.count(); ++j) { if (persistent.at(j).row() == i) // the same toplevel row - QCOMPARE(persistent.at(j).internalPointer(), (void *)w.item(i)); + QCOMPARE(persistent.at(j).internalPointer(), static_cast<void *>(w.item(i))); } } @@ -1595,13 +1588,12 @@ void tst_QListWidget::itemWidget() #ifndef Q_OS_MAC class MyListWidget : public QListWidget { + Q_OBJECT public: - MyListWidget(QWidget *parent=0) - : QListWidget(parent) - { - } + using QListWidget::QListWidget; - void paintEvent(QPaintEvent *e) { + void paintEvent(QPaintEvent *e) override + { painted += e->region(); QListWidget::paintEvent(e); } @@ -1611,6 +1603,9 @@ public: void tst_QListWidget::fastScroll() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QWidget topLevel; MyListWidget widget(&topLevel); for (int i = 0; i < 50; ++i) @@ -1649,7 +1644,7 @@ void tst_QListWidget::fastScroll() void tst_QListWidget::insertUnchanged() { QListWidget w; - QSignalSpy itemChangedSpy(&w, SIGNAL(itemChanged(QListWidgetItem*))); + QSignalSpy itemChangedSpy(&w, &QListWidget::itemChanged); QListWidgetItem item("foo", &w); QCOMPARE(itemChangedSpy.count(), 0); } @@ -1670,31 +1665,35 @@ void tst_QListWidget::task199503_crashWhenCleared() { //we test here for a crash that would occur if you clear the items in the currentItemChanged signal QListWidget w; - w.addItems( QStringList() << "item1" << "item2" << "item3"); + w.addItems({"item1", "item2", "item3"}); w.setCurrentRow(0); - w.connect(&w, SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*)), SLOT(clear())); + w.connect(&w, &QListWidget::currentItemChanged, &w, &QListWidget::clear); w.setCurrentRow(1); } void tst_QListWidget::task217070_scrollbarsAdjusted() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + //This task was mailing for style using SH_ScrollView_FrameOnlyAroundContents such as QMotifStyle QListWidget v; - for (int i = 0; i<200;i++) + for (int i = 0; i < 200;i++) v.addItem(QString::number(i)); v.show(); v.setViewMode(QListView::IconMode); v.setResizeMode(QListView::Adjust); v.setUniformItemSizes(true); - v.resize(160,100); + v.resize(160, 100); QVERIFY(QTest::qWaitForWindowActive(&v)); QScrollBar *hbar = v.horizontalScrollBar(); QScrollBar *vbar = v.verticalScrollBar(); QVERIFY(hbar && vbar); - for(int f=150; f>90 ; f--) { - v.resize(f,100); - QTest::qWait(30); - QVERIFY(vbar->style()->styleHint(QStyle::SH_ScrollBar_Transient, 0, vbar) || vbar->isVisible()); + const auto style = vbar->style(); + for (int f = 150; f > 90 ; f--) { + v.resize(f, 100); + QTRY_VERIFY(style->styleHint(QStyle::SH_ScrollBar_Transient, nullptr, vbar) || + vbar->isVisible()); //the horizontal scrollbar must not be visible. QVERIFY(!hbar->isVisible()); } @@ -1711,12 +1710,11 @@ void tst_QListWidget::task258949_keypressHangup() } lw.show(); - lw.setCurrentIndex(lw.model()->index(0,0)); - QCOMPARE(lw.currentIndex(), lw.model()->index(0,0)); + lw.setCurrentIndex(lw.model()->index(0, 0)); + QCOMPARE(lw.currentIndex(), lw.model()->index(0, 0)); QTest::qWait(30); QTest::keyPress(&lw, '1'); //this used to freeze - QTest::qWait(30); - QCOMPARE(lw.currentIndex(), lw.model()->index(0,0)); + QTRY_COMPARE(lw.currentIndex(), lw.model()->index(0, 0)); } void tst_QListWidget::QTBUG8086_currentItemChangedOnClick() @@ -1735,25 +1733,26 @@ void tst_QListWidget::QTBUG8086_currentItemChangedOnClick() edit.setFocus(); win.show(); - QSignalSpy spy(&list, SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*))); + QSignalSpy spy(&list, &QListWidget::currentItemChanged); QVERIFY(QTest::qWaitForWindowExposed(&win)); QCOMPARE(spy.count(), 0); - QTest::mouseClick(list.viewport(), Qt::LeftButton, 0, list.visualItemRect(list.item(2)).center()); + QTest::mouseClick(list.viewport(), Qt::LeftButton, {}, + list.visualItemRect(list.item(2)).center()); QCOMPARE(spy.count(), 1); - } -class ItemDelegate : public QItemDelegate +class ItemDelegate : public QStyledItemDelegate { + Q_OBJECT public: - ItemDelegate(QObject *parent = 0) : QItemDelegate(parent) - {} - virtual QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &, const QModelIndex &) const + using QStyledItemDelegate::QStyledItemDelegate; + QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &, + const QModelIndex &) const override { QLineEdit *lineEdit = new QLineEdit(parent); lineEdit->setFrame(false); @@ -1766,6 +1765,9 @@ public: void tst_QListWidget::QTBUG14363_completerWithAnyKeyPressedEditTriggers() { + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) + QSKIP("Wayland: This fails. Figure out why."); + QListWidget listWidget; listWidget.setEditTriggers(QAbstractItemView::AnyKeyPressed); listWidget.setItemDelegate(new ItemDelegate(&listWidget)); @@ -1775,10 +1777,10 @@ void tst_QListWidget::QTBUG14363_completerWithAnyKeyPressedEditTriggers() new QListWidgetItem(QLatin1String("completer"), &listWidget); listWidget.show(); listWidget.setCurrentItem(item); - qApp->setActiveWindow(&listWidget); + QApplication::setActiveWindow(&listWidget); QVERIFY(QTest::qWaitForWindowActive(&listWidget)); listWidget.setFocus(); - QCOMPARE(qApp->focusWidget(), &listWidget); + QCOMPARE(QApplication::focusWidget(), &listWidget); QTest::keyClick(listWidget.viewport(), Qt::Key_C); @@ -1792,41 +1794,27 @@ void tst_QListWidget::mimeData() { TestListWidget list; - for (int x = 0; x < 10; ++x) { - QListWidgetItem *item = new QListWidgetItem(QStringLiteral("123")); - list.addItem(item); - } + for (int x = 0; x < 10; ++x) + list.addItem(new QListWidgetItem(QStringLiteral("123"))); - QList<QListWidgetItem *> tableWidgetItemList; - QModelIndexList modelIndexList; + const QList<QListWidgetItem *> tableWidgetItemList{list.item(1)}; + const QModelIndexList modelIndexList{list.indexFromItem(list.item(1))}; // do these checks more than once to ensure that the "cached indexes" work as expected - QVERIFY(!list.mimeData(tableWidgetItemList)); - QVERIFY(!list.model()->mimeData(modelIndexList)); - QVERIFY(!list.model()->mimeData(modelIndexList)); - QVERIFY(!list.mimeData(tableWidgetItemList)); - - tableWidgetItemList << list.item(1); - modelIndexList << list.indexFromItem(list.item(1)); - QMimeData *data; + for (int i = 0; i < 2; ++i) { + QVERIFY(!list.mimeData({})); + QVERIFY(!list.model()->mimeData({})); - QVERIFY((data = list.mimeData(tableWidgetItemList))); - delete data; + QVERIFY((data = list.mimeData(tableWidgetItemList))); + delete data; - QVERIFY((data = list.model()->mimeData(modelIndexList))); - delete data; - - QVERIFY((data = list.model()->mimeData(modelIndexList))); - delete data; - - QVERIFY((data = list.mimeData(tableWidgetItemList))); - delete data; + QVERIFY((data = list.model()->mimeData(modelIndexList))); + delete data; + } // check the saved data is actually the same - QMimeData *data2; - data = list.mimeData(tableWidgetItemList); data2 = list.model()->mimeData(modelIndexList); @@ -1850,13 +1838,14 @@ void tst_QListWidget::QTBUG50891_ensureSelectionModelSignalConnectionsAreSet() list.show(); QVERIFY(QTest::qWaitForWindowExposed(&list)); - QSignalSpy currentItemChangedSpy(&list, SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*))); - QSignalSpy itemSelectionChangedSpy(&list, SIGNAL(itemSelectionChanged())); + QSignalSpy currentItemChangedSpy(&list, &QListWidget::currentItemChanged); + QSignalSpy itemSelectionChangedSpy(&list, &QListWidget::itemSelectionChanged); QCOMPARE(currentItemChangedSpy.count(), 0); QCOMPARE(itemSelectionChangedSpy.count(), 0); - QTest::mouseClick(list.viewport(), Qt::LeftButton, 0, list.visualItemRect(list.item(2)).center()); + QTest::mouseClick(list.viewport(), Qt::LeftButton, {}, + list.visualItemRect(list.item(2)).center()); QCOMPARE(currentItemChangedSpy.count(), 1); QCOMPARE(itemSelectionChangedSpy.count(), 1); |