From 9ae0fa4d4977ef1eb28eff2f95b429e9455ba748 Mon Sep 17 00:00:00 2001 From: Christian Ehrlicher Date: Sat, 19 Oct 2019 18:01:08 +0200 Subject: cleanup QSortFilterProxyModel tests Cleanup QSortFilterProxyModel tests: - adjust includes - use nullptr - use override - avoid unneeded casts - use new signal/slot syntax Change-Id: I05f7c18cd2642bc8251bf1560803e7635684d24d Reviewed-by: Friedemann Kleint --- .../tst_qsortfilterproxymodel.cpp | 532 ++++++++++----------- .../tst_qsortfilterproxymodel.h | 23 +- .../tst_qsortfilterproxymodel_recursive.cpp | 5 +- 3 files changed, 249 insertions(+), 311 deletions(-) diff --git a/tests/auto/corelib/itemmodels/qsortfilterproxymodel_common/tst_qsortfilterproxymodel.cpp b/tests/auto/corelib/itemmodels/qsortfilterproxymodel_common/tst_qsortfilterproxymodel.cpp index 624187349b..7f9a996136 100644 --- a/tests/auto/corelib/itemmodels/qsortfilterproxymodel_common/tst_qsortfilterproxymodel.cpp +++ b/tests/auto/corelib/itemmodels/qsortfilterproxymodel_common/tst_qsortfilterproxymodel.cpp @@ -26,25 +26,29 @@ ** ****************************************************************************/ -#include #include "tst_qsortfilterproxymodel.h" #include "dynamictreemodel.h" -#include -#include -#include -#include -#include - -#include +#include +#include +#include +#include +#include +#include +#include +#include Q_LOGGING_CATEGORY(lcItemModels, "qt.corelib.tests.itemmodels") +using IntPair = QPair; +using IntList = QVector; +using IntPairList = QVector; + // Testing get/set functions void tst_QSortFilterProxyModel::getSetCheck() { QSortFilterProxyModel obj1; - QCOMPARE(obj1.sourceModel(), (QAbstractItemModel *)0); + QCOMPARE(obj1.sourceModel(), nullptr); // int QSortFilterProxyModel::filterKeyColumn() // void QSortFilterProxyModel::setFilterKeyColumn(int) obj1.setFilterKeyColumn(0); @@ -55,15 +59,12 @@ void tst_QSortFilterProxyModel::getSetCheck() QCOMPARE(INT_MAX, obj1.filterKeyColumn()); } -tst_QSortFilterProxyModel::tst_QSortFilterProxyModel() - : m_model(0), m_proxy(0) -{ - qRegisterMetaType(); -} - +Q_DECLARE_METATYPE(Qt::MatchFlag) void tst_QSortFilterProxyModel::initTestCase() { + qRegisterMetaType(); qRegisterMetaType >(); + qRegisterMetaType(); m_model = new QStandardItemModel(0, 1); m_proxy = new QSortFilterProxyModel(); m_proxy->setSourceModel(m_model); @@ -97,13 +98,13 @@ void tst_QSortFilterProxyModel::cleanup() void tst_QSortFilterProxyModel::sort_data() { - QTest::addColumn("sortOrder"); - QTest::addColumn("sortCaseSensitivity"); + QTest::addColumn("sortOrder"); + QTest::addColumn("sortCaseSensitivity"); QTest::addColumn("initial"); QTest::addColumn("expected"); - QTest::newRow("flat descending") << static_cast(Qt::DescendingOrder) - << int(Qt::CaseSensitive) + QTest::newRow("flat descending") << Qt::DescendingOrder + << Qt::CaseSensitive << (QStringList() << "delta" << "yankee" @@ -158,8 +159,8 @@ void tst_QSortFilterProxyModel::sort_data() << "charlie" << "bravo" << "alpha"); - QTest::newRow("flat ascending") << static_cast(Qt::AscendingOrder) - << int(Qt::CaseSensitive) + QTest::newRow("flat ascending") << Qt::AscendingOrder + << Qt::CaseSensitive << (QStringList() << "delta" << "yankee" @@ -214,14 +215,14 @@ void tst_QSortFilterProxyModel::sort_data() << "xray" << "yankee" << "zulu"); - QTest::newRow("case insensitive") << static_cast(Qt::AscendingOrder) - << int(Qt::CaseInsensitive) + QTest::newRow("case insensitive") << Qt::AscendingOrder + << Qt::CaseInsensitive << (QStringList() << "alpha" << "BETA" << "Gamma" << "delta") << (QStringList() << "alpha" << "BETA" << "delta" << "Gamma"); - QTest::newRow("case sensitive") << static_cast(Qt::AscendingOrder) - << int(Qt::CaseSensitive) + QTest::newRow("case sensitive") << Qt::AscendingOrder + << Qt::CaseSensitive << (QStringList() << "alpha" << "BETA" << "Gamma" << "delta") << (QStringList() @@ -230,13 +231,13 @@ void tst_QSortFilterProxyModel::sort_data() QStringList list; for (int i = 10000; i < 20000; ++i) list.append(QStringLiteral("Number: ") + QString::number(i)); - QTest::newRow("large set ascending") << static_cast(Qt::AscendingOrder) << int(Qt::CaseSensitive) << list << list; + QTest::newRow("large set ascending") << Qt::AscendingOrder << Qt::CaseSensitive << list << list; } void tst_QSortFilterProxyModel::sort() { - QFETCH(int, sortOrder); - QFETCH(int, sortCaseSensitivity); + QFETCH(Qt::SortOrder, sortOrder); + QFETCH(Qt::CaseSensitivity, sortCaseSensitivity); QFETCH(QStringList, initial); QFETCH(QStringList, expected); @@ -259,8 +260,8 @@ void tst_QSortFilterProxyModel::sort() } // sort - m_proxy->sort(0, static_cast(sortOrder)); - m_proxy->setSortCaseSensitivity(static_cast(sortCaseSensitivity)); + m_proxy->sort(0, sortOrder); + m_proxy->setSortCaseSensitivity(sortCaseSensitivity); // make sure the model is unchanged for (int row = 0; row < m_model->rowCount(QModelIndex()); ++row) { @@ -285,24 +286,24 @@ void tst_QSortFilterProxyModel::sort() void tst_QSortFilterProxyModel::sortHierarchy_data() { - QTest::addColumn("sortOrder"); + QTest::addColumn("sortOrder"); QTest::addColumn("initial"); QTest::addColumn("expected"); QTest::newRow("flat ascending") - << static_cast(Qt::AscendingOrder) + << Qt::AscendingOrder << (QStringList() << "c" << "f" << "d" << "e" << "a" << "b") << (QStringList() << "a" << "b" << "c" << "d" << "e" << "f"); QTest::newRow("simple hierarchy") - << static_cast(Qt::AscendingOrder) + << Qt::AscendingOrder << (QStringList() << "a" << "<" << "b" << "<" << "c" << ">" << ">") << (QStringList() << "a" << "<" << "b" << "<" << "c" << ">" << ">"); QTest::newRow("hierarchical ascending") - << static_cast(Qt::AscendingOrder) + << Qt::AscendingOrder << (QStringList() << "c" << "<" @@ -365,14 +366,14 @@ void tst_QSortFilterProxyModel::sortHierarchy_data() void tst_QSortFilterProxyModel::sortHierarchy() { - QFETCH(int, sortOrder); + QFETCH(Qt::SortOrder, sortOrder); QFETCH(QStringList, initial); QFETCH(QStringList, expected); buildHierarchy(initial, m_model); checkHierarchy(initial, m_model); checkHierarchy(initial, m_proxy); - m_proxy->sort(0, static_cast(sortOrder)); + m_proxy->sort(0, sortOrder); checkHierarchy(initial, m_model); checkHierarchy(expected, m_proxy); } @@ -872,13 +873,13 @@ class MyFilteredColumnProxyModel : public QSortFilterProxyModel { Q_OBJECT public: - MyFilteredColumnProxyModel(FilterType filterType, QObject *parent = 0) : + MyFilteredColumnProxyModel(FilterType filterType, QObject *parent = nullptr) : QSortFilterProxyModel(parent), m_filterType(filterType) { } protected: - bool filterAcceptsColumn(int sourceColumn, const QModelIndex &) const + bool filterAcceptsColumn(int sourceColumn, const QModelIndex &) const override { QString key = sourceModel()->headerData(sourceColumn, Qt::Horizontal).toString(); bool result = false; @@ -1369,10 +1370,11 @@ void tst_QSortFilterProxyModel::setupFilter(QSortFilterProxyModel *model, const class TestModel: public QAbstractTableModel { + Q_OBJECT public: - int rowCount(const QModelIndex &) const { return 10000; } - int columnCount(const QModelIndex &) const { return 1; } - QVariant data(const QModelIndex &index, int role) const + int rowCount(const QModelIndex &) const override { return 10000; } + int columnCount(const QModelIndex &) const override { return 1; } + QVariant data(const QModelIndex &index, int role) const override { if (role != Qt::DisplayRole) return QVariant(); @@ -1402,7 +1404,7 @@ void tst_QSortFilterProxyModel::insertAfterSelect() view.setModel(&filter); view.show(); QModelIndex firstIndex = filter.mapFromSource(model.index(0, 0, QModelIndex())); - QCOMPARE(firstIndex.model(), (const QAbstractItemModel *)view.model()); + QCOMPARE(firstIndex.model(), view.model()); QVERIFY(firstIndex.isValid()); int itemOffset = view.visualRect(firstIndex).width() / 2; QPoint p(itemOffset, 1); @@ -1423,7 +1425,7 @@ void tst_QSortFilterProxyModel::removeAfterSelect() view.setModel(&filter); view.show(); QModelIndex firstIndex = filter.mapFromSource(model.index(0, 0, QModelIndex())); - QCOMPARE(firstIndex.model(), (const QAbstractItemModel *)view.model()); + QCOMPARE(firstIndex.model(), view.model()); QVERIFY(firstIndex.isValid()); int itemOffset = view.visualRect(firstIndex).width() / 2; QPoint p(itemOffset, 1); @@ -1488,8 +1490,8 @@ void tst_QSortFilterProxyModel::changeSourceLayout() QSortFilterProxyModel proxy; proxy.setSourceModel(&model); - QList persistentSourceIndexes; - QList persistentProxyIndexes; + QVector persistentSourceIndexes; + QVector persistentProxyIndexes; for (int row = 0; row < model.rowCount(); ++row) { persistentSourceIndexes.append(model.index(row, 0)); persistentProxyIndexes.append(proxy.index(row, 0)); @@ -1634,7 +1636,7 @@ void tst_QSortFilterProxyModel::removeSourceRows() QCOMPARE(aboutToRemoveSpy.count(), expectedRemovedProxyIntervals.count()); for (int i = 0; i < aboutToRemoveSpy.count(); ++i) { - QList args = aboutToRemoveSpy.at(i); + const auto &args = aboutToRemoveSpy.at(i); QCOMPARE(args.at(1).type(), QVariant::Int); QCOMPARE(args.at(2).type(), QVariant::Int); QCOMPARE(args.at(1).toInt(), expectedRemovedProxyIntervals.at(i).first); @@ -1642,7 +1644,7 @@ void tst_QSortFilterProxyModel::removeSourceRows() } QCOMPARE(removeSpy.count(), expectedRemovedProxyIntervals.count()); for (int i = 0; i < removeSpy.count(); ++i) { - QList args = removeSpy.at(i); + const auto &args = removeSpy.at(i); QCOMPARE(args.at(1).type(), QVariant::Int); QCOMPARE(args.at(2).type(), QVariant::Int); QCOMPARE(args.at(1).toInt(), expectedRemovedProxyIntervals.at(i).first); @@ -1664,14 +1666,14 @@ void tst_QSortFilterProxyModel::insertSourceRows_data() QTest::addColumn("sourceItems"); QTest::addColumn("start"); QTest::addColumn("newItems"); - QTest::addColumn("sortOrder"); + QTest::addColumn("sortOrder"); QTest::addColumn("proxyItems"); QTest::newRow("insert (1)") << (QStringList() << "c" << "b") // sourceItems << 1 // start << (QStringList() << "a") // newItems - << static_cast(Qt::AscendingOrder) // sortOrder + << Qt::AscendingOrder // sortOrder << (QStringList() << "a" << "b" << "c") // proxyItems ; @@ -1679,7 +1681,7 @@ void tst_QSortFilterProxyModel::insertSourceRows_data() << (QStringList() << "d" << "b" << "c") // sourceItems << 3 // start << (QStringList() << "a") // newItems - << static_cast(Qt::DescendingOrder) // sortOrder + << Qt::DescendingOrder // sortOrder << (QStringList() << "d" << "c" << "b" << "a") // proxyItems ; } @@ -1691,7 +1693,7 @@ void tst_QSortFilterProxyModel::insertSourceRows() QFETCH(QStringList, sourceItems); QFETCH(int, start); QFETCH(QStringList, newItems); - QFETCH(int, sortOrder); + QFETCH(Qt::SortOrder, sortOrder); QFETCH(QStringList, proxyItems); QStandardItemModel model; @@ -1707,7 +1709,7 @@ void tst_QSortFilterProxyModel::insertSourceRows() model.setData(index, sourceItems.at(i), Qt::DisplayRole); } - proxy.sort(0, static_cast(sortOrder)); + proxy.sort(0, sortOrder); (void)proxy.rowCount(QModelIndex()); // force mapping model.insertRows(start, newItems.size(), QModelIndex()); @@ -1727,7 +1729,7 @@ void tst_QSortFilterProxyModel::insertSourceRows() void tst_QSortFilterProxyModel::changeFilter_data() { QTest::addColumn("sourceItems"); - QTest::addColumn("sortOrder"); + QTest::addColumn("sortOrder"); QTest::addColumn("initialFilter"); QTest::addColumn("initialRemoveIntervals"); QTest::addColumn("initialProxyItems"); @@ -1738,7 +1740,7 @@ void tst_QSortFilterProxyModel::changeFilter_data() QTest::newRow("filter (1)") << (QStringList() << "a" << "b" << "c" << "d" << "e" << "f") // sourceItems - << static_cast(Qt::AscendingOrder) // sortOrder + << Qt::AscendingOrder // sortOrder << "a|b|c" // initialFilter << (IntPairList() << IntPair(3, 5)) // initialRemoveIntervals << (QStringList() << "a" << "b" << "c") // initialProxyItems @@ -1750,7 +1752,7 @@ void tst_QSortFilterProxyModel::changeFilter_data() QTest::newRow("filter (2)") << (QStringList() << "a" << "b" << "c" << "d" << "e" << "f") // sourceItems - << static_cast(Qt::AscendingOrder) // sortOrder + << Qt::AscendingOrder // sortOrder << "a|c|e" // initialFilter << (IntPairList() << IntPair(5, 5) << IntPair(3, 3) << IntPair(1, 1)) // initialRemoveIntervals << (QStringList() << "a" << "c" << "e") // initialProxyItems @@ -1762,7 +1764,7 @@ void tst_QSortFilterProxyModel::changeFilter_data() QTest::newRow("filter (3)") << (QStringList() << "a" << "b" << "c") // sourceItems - << static_cast(Qt::AscendingOrder) // sortOrder + << Qt::AscendingOrder // sortOrder << "a" // initialFilter << (IntPairList() << IntPair(1, 2)) // initialRemoveIntervals << (QStringList() << "a") // initialProxyItems @@ -1777,7 +1779,7 @@ void tst_QSortFilterProxyModel::changeFilter_data() void tst_QSortFilterProxyModel::changeFilter() { QFETCH(QStringList, sourceItems); - QFETCH(int, sortOrder); + QFETCH(Qt::SortOrder, sortOrder); QFETCH(QString, initialFilter); QFETCH(IntPairList, initialRemoveIntervals); QFETCH(QStringList, initialProxyItems); @@ -1798,7 +1800,7 @@ void tst_QSortFilterProxyModel::changeFilter() model.setData(index, sourceItems.at(i), Qt::DisplayRole); } - proxy.sort(0, static_cast(sortOrder)); + proxy.sort(0, sortOrder); (void)proxy.rowCount(QModelIndex()); // force mapping QSignalSpy initialRemoveSpy(&proxy, &QSortFilterProxyModel::rowsRemoved); @@ -1812,7 +1814,7 @@ void tst_QSortFilterProxyModel::changeFilter() QCOMPARE(initialRemoveSpy.count(), initialRemoveIntervals.count()); QCOMPARE(initialInsertSpy.count(), 0); for (int i = 0; i < initialRemoveSpy.count(); ++i) { - QList args = initialRemoveSpy.at(i); + const auto &args = initialRemoveSpy.at(i); QCOMPARE(args.at(1).type(), QVariant::Int); QCOMPARE(args.at(2).type(), QVariant::Int); QCOMPARE(args.at(1).toInt(), initialRemoveIntervals.at(i).first); @@ -1835,7 +1837,7 @@ void tst_QSortFilterProxyModel::changeFilter() QCOMPARE(finalRemoveSpy.count(), finalRemoveIntervals.count()); for (int i = 0; i < finalRemoveSpy.count(); ++i) { - QList args = finalRemoveSpy.at(i); + const auto &args = finalRemoveSpy.at(i); QCOMPARE(args.at(1).type(), QVariant::Int); QCOMPARE(args.at(2).type(), QVariant::Int); QCOMPARE(args.at(1).toInt(), finalRemoveIntervals.at(i).first); @@ -1844,7 +1846,7 @@ void tst_QSortFilterProxyModel::changeFilter() QCOMPARE(finalInsertSpy.count(), insertIntervals.count()); for (int i = 0; i < finalInsertSpy.count(); ++i) { - QList args = finalInsertSpy.at(i); + const auto &args = finalInsertSpy.at(i); QCOMPARE(args.at(1).type(), QVariant::Int); QCOMPARE(args.at(2).type(), QVariant::Int); QCOMPARE(args.at(1).toInt(), insertIntervals.at(i).first); @@ -1861,7 +1863,7 @@ void tst_QSortFilterProxyModel::changeFilter() void tst_QSortFilterProxyModel::changeSourceData_data() { QTest::addColumn("sourceItems"); - QTest::addColumn("sortOrder"); + QTest::addColumn("sortOrder"); QTest::addColumn("filter"); QTest::addColumn("expectedInitialProxyItems"); QTest::addColumn("dynamic"); @@ -1875,7 +1877,7 @@ void tst_QSortFilterProxyModel::changeSourceData_data() QTest::newRow("move_to_end_ascending") << (QStringList() << "c" << "b" << "a") // sourceItems - << static_cast(Qt::AscendingOrder) // sortOrder + << Qt::AscendingOrder // sortOrder << "" // filter << (QStringList() << "a" << "b" << "c") // expectedInitialProxyItems << true // dynamic @@ -1890,7 +1892,7 @@ void tst_QSortFilterProxyModel::changeSourceData_data() QTest::newRow("move_to_end_descending") << (QStringList() << "b" << "c" << "z") // sourceItems - << static_cast(Qt::DescendingOrder) // sortOrder + << Qt::DescendingOrder // sortOrder << "" // filter << (QStringList() << "z" << "c" << "b") // expectedInitialProxyItems << true // dynamic @@ -1905,7 +1907,7 @@ void tst_QSortFilterProxyModel::changeSourceData_data() QTest::newRow("no_op_change") << (QStringList() << "a" << "b") // sourceItems - << static_cast(Qt::DescendingOrder) // sortOrder + << Qt::DescendingOrder // sortOrder << "" // filter << (QStringList() << "b" << "a") // expectedInitialProxyItems << true // dynamic @@ -1920,7 +1922,7 @@ void tst_QSortFilterProxyModel::changeSourceData_data() QTest::newRow("no_effect_on_filtering") << (QStringList() << "a" << "b") // sourceItems - << static_cast(Qt::AscendingOrder) // sortOrder + << Qt::AscendingOrder // sortOrder << "" // filter << (QStringList() << "a" << "b") // expectedInitialProxyItems << true // dynamic @@ -1935,7 +1937,7 @@ void tst_QSortFilterProxyModel::changeSourceData_data() QTest::newRow("filtered_out_value_stays_out") << (QStringList() << "a" << "b" << "c" << "d") // sourceItems - << static_cast(Qt::AscendingOrder) // sortOrder + << Qt::AscendingOrder // sortOrder << "a|c" // filter << (QStringList() << "a" << "c") // expectedInitialProxyItems << true // dynamic @@ -1950,7 +1952,7 @@ void tst_QSortFilterProxyModel::changeSourceData_data() QTest::newRow("filtered_out_now_matches") << (QStringList() << "a" << "b" << "c" << "d") // sourceItems - << static_cast(Qt::AscendingOrder) // sortOrder + << Qt::AscendingOrder // sortOrder << "a|c|x" // filter << (QStringList() << "a" << "c") // expectedInitialProxyItems << true // dynamic @@ -1965,7 +1967,7 @@ void tst_QSortFilterProxyModel::changeSourceData_data() QTest::newRow("value_is_now_filtered_out") << (QStringList() << "a" << "b" << "c" << "d") // sourceItems - << static_cast(Qt::AscendingOrder) // sortOrder + << Qt::AscendingOrder // sortOrder << "a|c" // filter << (QStringList() << "a" << "c") // expectedInitialProxyItems << true // dynamic @@ -1980,7 +1982,7 @@ void tst_QSortFilterProxyModel::changeSourceData_data() QTest::newRow("non_dynamic_filter_does_not_update_sort") << (QStringList() << "c" << "b" << "a") // sourceItems - << static_cast(Qt::AscendingOrder) // sortOrder + << Qt::AscendingOrder // sortOrder << "" // filter << (QStringList() << "a" << "b" << "c") // expectedInitialProxyItems << false // dynamic @@ -1997,7 +1999,7 @@ void tst_QSortFilterProxyModel::changeSourceData_data() void tst_QSortFilterProxyModel::changeSourceData() { QFETCH(QStringList, sourceItems); - QFETCH(int, sortOrder); + QFETCH(Qt::SortOrder, sortOrder); QFETCH(QString, filter); QFETCH(QStringList, expectedInitialProxyItems); QFETCH(bool, dynamic); @@ -2022,7 +2024,7 @@ void tst_QSortFilterProxyModel::changeSourceData() model.setData(index, sourceItems.at(i), Qt::DisplayRole); } - proxy.sort(0, static_cast(sortOrder)); + proxy.sort(0, sortOrder); (void)proxy.rowCount(QModelIndex()); // force mapping setupFilter(&proxy, filter); @@ -2050,7 +2052,7 @@ void tst_QSortFilterProxyModel::changeSourceData() QCOMPARE(removeSpy.count(), removeIntervals.count()); for (int i = 0; i < removeSpy.count(); ++i) { - QList args = removeSpy.at(i); + const auto &args = removeSpy.at(i); QCOMPARE(args.at(1).type(), QVariant::Int); QCOMPARE(args.at(2).type(), QVariant::Int); QCOMPARE(args.at(1).toInt(), removeIntervals.at(i).first); @@ -2059,7 +2061,7 @@ void tst_QSortFilterProxyModel::changeSourceData() QCOMPARE(insertSpy.count(), insertIntervals.count()); for (int i = 0; i < insertSpy.count(); ++i) { - QList args = insertSpy.at(i); + const auto &args = insertSpy.at(i); QCOMPARE(args.at(1).type(), QVariant::Int); QCOMPARE(args.at(2).type(), QVariant::Int); QCOMPARE(args.at(1).toInt(), insertIntervals.at(i).first); @@ -2107,8 +2109,7 @@ void tst_QSortFilterProxyModel::changeSourceDataKeepsStableSorting_qtbug1548() // doesn't alter the sorting. In this case, we sort on the DisplayRole, // and play with other roles. - static const QStringList rows - = QStringList() << "a" << "b" << "b" << "b" << "c" << "c" << "x"; + const QStringList rows({"a", "b", "b", "b", "c", "c", "x"}); // Build a table of pairs (string, #row) in each row QStandardItemModel model(0, 2); @@ -2119,11 +2120,7 @@ void tst_QSortFilterProxyModel::changeSourceDataKeepsStableSorting_qtbug1548() column0->setCheckState(Qt::Unchecked); QStandardItem *column1 = new QStandardItem(QString::number(rowNumber)); - - const QList row - = QList() << column0 << column1; - - model.appendRow(row); + model.appendRow({column0, column1}); } checkSortedTableModel(&model, rows); @@ -2201,15 +2198,12 @@ void tst_QSortFilterProxyModel::sortFilterRole() proxy.setSourceModel(&model); model.insertColumns(0, 1); - QList > sourceItems; - sourceItems = QList >() - << QPair("b", 3) - << QPair("c", 2) - << QPair("a", 1); + const QVector> + sourceItems({QPair("b", 3), + QPair("c", 2), + QPair("a", 1)}); - QList orderedItems; - orderedItems = QList() - << 2 << 1; + const QVector orderedItems({2, 1}); model.insertRows(0, sourceItems.count()); for (int i = 0; i < sourceItems.count(); ++i) { @@ -2273,70 +2267,70 @@ void tst_QSortFilterProxyModel::selectionFilteredOut() void tst_QSortFilterProxyModel::match_data() { QTest::addColumn("sourceItems"); - QTest::addColumn("sortOrder"); + QTest::addColumn("sortOrder"); QTest::addColumn("filter"); QTest::addColumn("proxyStartRow"); QTest::addColumn("what"); - QTest::addColumn("matchFlags"); + QTest::addColumn("matchFlags"); QTest::addColumn("expectedProxyItems"); QTest::newRow("1") << (QStringList() << "a") // sourceItems - << static_cast(Qt::AscendingOrder) // sortOrder + << Qt::AscendingOrder // sortOrder << "" // filter << 0 // proxyStartRow << "a" // what - << static_cast(Qt::MatchExactly) // matchFlags + << Qt::MatchExactly // matchFlags << (IntList() << 0); // expectedProxyItems QTest::newRow("2") << (QStringList() << "a" << "b") // sourceItems - << static_cast(Qt::AscendingOrder) // sortOrder + << Qt::AscendingOrder // sortOrder << "" // filter << 0 // proxyStartRow << "b" // what - << static_cast(Qt::MatchExactly) // matchFlags + << Qt::MatchExactly // matchFlags << (IntList() << 1); // expectedProxyItems QTest::newRow("3") << (QStringList() << "a" << "b") // sourceItems - << static_cast(Qt::DescendingOrder) // sortOrder + << Qt::DescendingOrder // sortOrder << "" // filter << 0 // proxyStartRow << "a" // what - << static_cast(Qt::MatchExactly) // matchFlags + << Qt::MatchExactly // matchFlags << (IntList() << 1); // expectedProxyItems QTest::newRow("4") << (QStringList() << "b" << "d" << "a" << "c") // sourceItems - << static_cast(Qt::AscendingOrder) // sortOrder + << Qt::AscendingOrder // sortOrder << "" // filter << 1 // proxyStartRow << "a" // what - << static_cast(Qt::MatchExactly) // matchFlags + << Qt::MatchExactly // matchFlags << IntList(); // expectedProxyItems QTest::newRow("5") << (QStringList() << "b" << "d" << "a" << "c") // sourceItems - << static_cast(Qt::AscendingOrder) // sortOrder + << Qt::AscendingOrder // sortOrder << "a|b" // filter << 0 // proxyStartRow << "c" // what - << static_cast(Qt::MatchExactly) // matchFlags + << Qt::MatchExactly // matchFlags << IntList(); // expectedProxyItems QTest::newRow("6") << (QStringList() << "b" << "d" << "a" << "c") // sourceItems - << static_cast(Qt::DescendingOrder) // sortOrder + << Qt::DescendingOrder // sortOrder << "a|b" // filter << 0 // proxyStartRow << "b" // what - << static_cast(Qt::MatchExactly) // matchFlags + << Qt::MatchExactly // matchFlags << (IntList() << 0); // expectedProxyItems } void tst_QSortFilterProxyModel::match() { QFETCH(QStringList, sourceItems); - QFETCH(int, sortOrder); + QFETCH(Qt::SortOrder, sortOrder); QFETCH(QString, filter); QFETCH(int, proxyStartRow); QFETCH(QString, what); - QFETCH(int, matchFlags); + QFETCH(Qt::MatchFlag, matchFlags); QFETCH(IntList, expectedProxyItems); QStandardItemModel model; @@ -2351,13 +2345,13 @@ void tst_QSortFilterProxyModel::match() model.setData(index, sourceItems.at(i), Qt::DisplayRole); } - proxy.sort(0, static_cast(sortOrder)); + proxy.sort(0, sortOrder); setupFilter(&proxy, filter); QModelIndex startIndex = proxy.index(proxyStartRow, 0); QModelIndexList indexes = proxy.match(startIndex, Qt::DisplayRole, what, expectedProxyItems.count(), - Qt::MatchFlags(matchFlags)); + matchFlags); QCOMPARE(indexes.count(), expectedProxyItems.count()); for (int i = 0; i < indexes.count(); ++i) QCOMPARE(indexes.at(i).row(), expectedProxyItems.at(i)); @@ -2480,8 +2474,9 @@ void tst_QSortFilterProxyModel::invalidateMappedChildren() class EvenOddFilterModel : public QSortFilterProxyModel { + Q_OBJECT public: - virtual bool filterAcceptsRow(int srcRow, const QModelIndex& srcParent) const + bool filterAcceptsRow(int srcRow, const QModelIndex &srcParent) const override { if (srcParent.isValid()) return (srcParent.row() % 2) ^ !(srcRow % 2); @@ -2572,9 +2567,9 @@ void tst_QSortFilterProxyModel::sourceModelDeletion() { QStandardItemModel model; proxyModel.setSourceModel(&model); - QCOMPARE(proxyModel.sourceModel(), static_cast(&model)); + QCOMPARE(proxyModel.sourceModel(), &model); } - QCOMPARE(proxyModel.sourceModel(), static_cast(0)); + QCOMPARE(proxyModel.sourceModel(), nullptr); } void tst_QSortFilterProxyModel::sortColumnTracking1() @@ -2830,8 +2825,9 @@ void tst_QSortFilterProxyModel::dynamicSorting() class QtTestModel: public QAbstractItemModel { + Q_OBJECT public: - QtTestModel(int _rows, int _cols, QObject *parent = 0) + QtTestModel(int _rows, int _cols, QObject *parent = nullptr) : QAbstractItemModel(parent) , rows(_rows) , cols(_cols) @@ -2839,12 +2835,12 @@ public: { } - bool canFetchMore(const QModelIndex &idx) const + bool canFetchMore(const QModelIndex &idx) const override { return !fetched.contains(idx); } - void fetchMore(const QModelIndex &idx) + void fetchMore(const QModelIndex &idx) override { if (fetched.contains(idx)) return; @@ -2853,23 +2849,24 @@ public: endInsertRows(); } - bool hasChildren(const QModelIndex & = QModelIndex()) const + bool hasChildren(const QModelIndex &parent = QModelIndex()) const override { + Q_UNUSED(parent) return true; } - int rowCount(const QModelIndex& parent = QModelIndex()) const + int rowCount(const QModelIndex& parent = QModelIndex()) const override { return fetched.contains(parent) ? rows : 0; } - int columnCount(const QModelIndex& parent = QModelIndex()) const + int columnCount(const QModelIndex& parent = QModelIndex()) const override { - Q_UNUSED(parent); + Q_UNUSED(parent) return cols; } - QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const + QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const override { if (row < 0 || column < 0 || column >= cols || row >= rows) { return QModelIndex(); @@ -2879,14 +2876,14 @@ public: return i; } - QModelIndex parent(const QModelIndex &index) const + QModelIndex parent(const QModelIndex &index) const override { if (!parentHash.contains(index)) return QModelIndex(); return parentHash[index]; } - QVariant data(const QModelIndex &idx, int role) const + QVariant data(const QModelIndex &idx, int role) const override { if (!idx.isValid()) return QVariant(); @@ -3099,10 +3096,8 @@ void tst_QSortFilterProxyModel::appearsAndSort() { class PModel : public QSortFilterProxyModel { - public: - PModel() : mVisible(false) {}; protected: - bool filterAcceptsRow(int, const QModelIndex &) const + bool filterAcceptsRow(int, const QModelIndex &) const override { return mVisible; } @@ -3114,13 +3109,11 @@ void tst_QSortFilterProxyModel::appearsAndSort() invalidate(); } private: - bool mVisible; + bool mVisible = false; } proxyModel; QStringListModel sourceModel; - QStringList list; - list << "b" << "a" << "c"; - sourceModel.setStringList(list); + sourceModel.setStringList({"b", "a", "c"}); proxyModel.setSourceModel(&sourceModel); proxyModel.setDynamicSortFilter(true); @@ -3195,43 +3188,40 @@ void tst_QSortFilterProxyModel::unnecessaryDynamicSorting() } } -class SelectionProxyModel : QAbstractProxyModel +class SelectionProxyModel : public QAbstractProxyModel { Q_OBJECT public: - SelectionProxyModel() - : QAbstractProxyModel(), selectionModel(0) - { - } - - QModelIndex mapFromSource(QModelIndex const&) const + QModelIndex mapFromSource(QModelIndex const&) const override { return QModelIndex(); } - QModelIndex mapToSource(QModelIndex const&) const + QModelIndex mapToSource(QModelIndex const&) const override { return QModelIndex(); } - QModelIndex index(int, int, const QModelIndex&) const + QModelIndex index(int, int, const QModelIndex&) const override { return QModelIndex(); } - QModelIndex parent(const QModelIndex&) const + QModelIndex parent(const QModelIndex&) const override { return QModelIndex(); } - int rowCount(const QModelIndex&) const + int rowCount(const QModelIndex&) const override { return 0; } - int columnCount(const QModelIndex&) const + int columnCount(const QModelIndex&) const override { return 0; } - void setSourceModel( QAbstractItemModel *sourceModel ) + void setSourceModel(QAbstractItemModel *sourceModel) override { beginResetModel(); - disconnect( sourceModel, SIGNAL(modelAboutToBeReset()), this, SLOT(sourceModelAboutToBeReset()) ); + disconnect(sourceModel, &QAbstractItemModel::modelAboutToBeReset, + this, &SelectionProxyModel::sourceModelAboutToBeReset); QAbstractProxyModel::setSourceModel( sourceModel ); - connect( sourceModel, SIGNAL(modelAboutToBeReset()), this, SLOT(sourceModelAboutToBeReset()) ); + connect(sourceModel, &QAbstractItemModel::modelAboutToBeReset, + this, &SelectionProxyModel::sourceModelAboutToBeReset); endResetModel(); } - void setSelectionModel( QItemSelectionModel *_selectionModel ) + void setSelectionModel(QItemSelectionModel *_selectionModel) { selectionModel = _selectionModel; } @@ -3249,7 +3239,7 @@ private slots: } private: - QItemSelectionModel *selectionModel; + QItemSelectionModel *selectionModel = nullptr; }; void tst_QSortFilterProxyModel::testMultipleProxiesWithSelection() @@ -3275,7 +3265,7 @@ void tst_QSortFilterProxyModel::testMultipleProxiesWithSelection() selectionModel.select( proxy2.index( 0, 0 ), QItemSelectionModel::Select ); // trick the proxy into emitting begin/end reset signals. - proxy.setSourceModel(0); + proxy.setSourceModel(nullptr); } static bool isValid(const QItemSelection &selection) @@ -3321,7 +3311,7 @@ class Model10287 : public QStandardItemModel Q_OBJECT public: - Model10287(QObject *parent = 0) + Model10287(QObject *parent = nullptr) : QStandardItemModel(0, 1, parent) { parentItem = new QStandardItem("parent"); @@ -3352,7 +3342,7 @@ class Proxy10287 : public QSortFilterProxyModel Q_OBJECT public: - Proxy10287(QAbstractItemModel *model, QObject *parent = 0) + Proxy10287(QAbstractItemModel *model, QObject *parent = nullptr) : QSortFilterProxyModel(parent) { setSourceModel(model); @@ -3360,7 +3350,7 @@ public: } protected: - virtual bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const + bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const override { // Filter based on UserRole in model QModelIndex i = sourceModel()->index(source_row, 0, source_parent); @@ -3380,13 +3370,9 @@ class FilteredColumnProxyModel : public QSortFilterProxyModel { Q_OBJECT public: - FilteredColumnProxyModel(QObject *parent = 0) - : QSortFilterProxyModel(parent) - { - } - + using QSortFilterProxyModel::QSortFilterProxyModel; protected: - bool filterAcceptsColumn(int column, const QModelIndex & /* source_parent */) const + bool filterAcceptsColumn(int column, const QModelIndex &) const override { return column % 2 != 0; } @@ -3413,12 +3399,7 @@ class ChangableHeaderData : public QStringListModel { Q_OBJECT public: - explicit ChangableHeaderData(QObject *parent = 0) - : QStringListModel(parent) - { - - } - + using QStringListModel::QStringListModel; void emitHeaderDataChanged() { headerDataChanged(Qt::Vertical, 0, rowCount() - 1); @@ -3461,7 +3442,7 @@ void tst_QSortFilterProxyModel::resetInvalidate() struct Proxy : QSortFilterProxyModel { QString pattern; - virtual bool filterAcceptsRow(int source_row, const QModelIndex&) const + bool filterAcceptsRow(int source_row, const QModelIndex&) const override { return sourceModel()->data(sourceModel()->index(source_row, 0)).toString().contains(pattern); } @@ -3479,17 +3460,16 @@ void tst_QSortFilterProxyModel::resetInvalidate() } }; - QStringListModel sourceModel(QStringList() << "Poisson" << "Vache" << "Brebis" - << "Elephant" << "Cochon" << "Serpent" - << "Mouton" << "Ecureuil" << "Mouche"); + QStringListModel sourceModel({"Poisson", "Vache", "Brebis", + "Elephant", "Cochon", "Serpent", + "Mouton", "Ecureuil", "Mouche"}); Proxy proxy; proxy.pattern = QString::fromLatin1("n"); proxy.setSourceModel(&sourceModel); QCOMPARE(proxy.rowCount(), 5); - for (int i = 0; i < proxy.rowCount(); i++) { + for (int i = 0; i < proxy.rowCount(); i++) QVERIFY(proxy.data(proxy.index(i,0)).toString().contains('n')); - } proxy.pattern = QString::fromLatin1("o"); proxy.notifyChange(test); @@ -3511,13 +3491,13 @@ class CustomDataProxy : public QSortFilterProxyModel Q_OBJECT public: - CustomDataProxy(QObject *parent = 0) + CustomDataProxy(QObject *parent = nullptr) : QSortFilterProxyModel(parent) { setDynamicSortFilter(true); } - void setSourceModel(QAbstractItemModel *sourceModel) + void setSourceModel(QAbstractItemModel *sourceModel) override { // It would be possible to use only the modelReset signal of the source model to clear // the data in *this, however, this requires that the slot is connected @@ -3534,16 +3514,13 @@ public: for (int i = 0; i < sourceModel->rowCount(); ++i) { if (sourceModel->index(i, 0).data().toString().endsWith(QLatin1Char('y'))) - { m_backgroundColours.insert(i, Qt::blue); - } else if (sourceModel->index(i, 0).data().toString().endsWith(QLatin1Char('r'))) - { + else if (sourceModel->index(i, 0).data().toString().endsWith(QLatin1Char('r'))) m_backgroundColours.insert(i, Qt::red); - } } } - QVariant data(const QModelIndex &index, int role) const + QVariant data(const QModelIndex &index, int role) const override { if (role != Qt::BackgroundRole) return QSortFilterProxyModel::data(index, role); @@ -3564,12 +3541,14 @@ class ModelObserver : public QObject { Q_OBJECT public: - ModelObserver(QAbstractItemModel *model, QObject *parent = 0) - : QObject(parent), m_model(model) - { - connect(m_model, SIGNAL(modelAboutToBeReset()), SLOT(modelAboutToBeReset())); - connect(m_model, SIGNAL(modelReset()), SLOT(modelReset())); - } + ModelObserver(QAbstractItemModel *model, QObject *parent = nullptr) + : QObject(parent), m_model(model) + { + connect(m_model, &QAbstractItemModel::modelAboutToBeReset, + this, &ModelObserver::modelAboutToBeReset); + connect(m_model, &QAbstractItemModel::modelReset, + this, &ModelObserver::modelReset); + } public slots: void modelAboutToBeReset() @@ -3580,7 +3559,7 @@ public slots: QColor color = m_model->index(i, 0).data(Qt::BackgroundRole).value(); if (color == Qt::blue) ++blues; - if (color == Qt::red) + else if (color == Qt::red) ++reds; } QCOMPARE(blues, 11); @@ -3595,7 +3574,7 @@ public slots: QColor color = m_model->index(i, 0).data(Qt::BackgroundRole).value(); if (color == Qt::blue) ++blues; - if (color == Qt::red) + else if (color == Qt::red) ++reds; } QCOMPARE(reds, 0); @@ -3609,26 +3588,25 @@ private: void tst_QSortFilterProxyModel::testResetInternalData() { - - QStringListModel model(QStringList() << "Monday" - << "Tuesday" - << "Wednesday" - << "Thursday" - << "Friday" - << "January" - << "February" - << "March" - << "April" - << "May" - << "Saturday" - << "June" - << "Sunday" - << "July" - << "August" - << "September" - << "October" - << "November" - << "December"); + QStringListModel model({"Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "January", + "February", + "March", + "April", + "May", + "Saturday", + "June", + "Sunday", + "July", + "August", + "September", + "October", + "November", + "December"}); CustomDataProxy proxy; proxy.setSourceModel(&model); @@ -3636,7 +3614,7 @@ void tst_QSortFilterProxyModel::testResetInternalData() ModelObserver observer(&proxy); // Cause the source model to reset. - model.setStringList(QStringList() << "Spam" << "Eggs"); + model.setStringList({"Spam", "Eggs"}); } @@ -3752,13 +3730,17 @@ class SignalArgumentChecker : public QObject { Q_OBJECT public: - SignalArgumentChecker(QAbstractItemModel *model, QAbstractProxyModel *proxy, QObject *parent = 0) - : QObject(parent), m_proxy(proxy) + SignalArgumentChecker(QAbstractItemModel *model, QAbstractProxyModel *proxy, QObject *parent = nullptr) + : QObject(parent), m_proxy(proxy) { - connect(model, SIGNAL(rowsAboutToBeMoved(QModelIndex,int,int,QModelIndex,int)), SLOT(rowsAboutToBeMoved(QModelIndex,int,int,QModelIndex,int))); - connect(model, SIGNAL(rowsMoved(QModelIndex,int,int,QModelIndex,int)), SLOT(rowsMoved(QModelIndex,int,int,QModelIndex,int))); - connect(proxy, SIGNAL(layoutAboutToBeChanged(QList)), SLOT(layoutAboutToBeChanged(QList))); - connect(proxy, SIGNAL(layoutChanged(QList)), SLOT(layoutChanged(QList))); + connect(model, &QAbstractItemModel::rowsAboutToBeMoved, + this, &SignalArgumentChecker::rowsAboutToBeMoved); + connect(model, &QAbstractItemModel::rowsMoved, + this, &SignalArgumentChecker::rowsMoved); + connect(proxy, &QAbstractProxyModel::layoutAboutToBeChanged, + this, &SignalArgumentChecker::layoutAboutToBeChanged); + connect(proxy, &QAbstractProxyModel::layoutChanged, + this, &SignalArgumentChecker::layoutChanged); } private slots: @@ -3881,7 +3863,7 @@ void tst_QSortFilterProxyModel::moveSourceRows() QVERIFY(filterBothAfterParentLayoutSpy.isValid()); { - ModelMoveCommand moveCommand(&model, 0); + ModelMoveCommand moveCommand(&model, nullptr); moveCommand.setAncestorRowNumbers(QList() << 2); moveCommand.setDestAncestors(QList() << 5); moveCommand.setStartRow(3); @@ -3923,13 +3905,7 @@ class FilterProxy : public QSortFilterProxyModel { Q_OBJECT public: - FilterProxy(QObject *parent = 0) - : QSortFilterProxyModel(parent), - mode(false) - { - - } - + using QSortFilterProxyModel::QSortFilterProxyModel; public slots: void setMode(bool on) { @@ -3938,25 +3914,23 @@ public slots: } protected: - virtual bool filterAcceptsRow ( int source_row, const QModelIndex & source_parent ) const + bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const override { if (mode) { - if (!source_parent.isValid()) { + if (!source_parent.isValid()) return true; - } else { + else return (source_row % 2) != 0; - } } else { - if (!source_parent.isValid()) { + if (!source_parent.isValid()) return source_row >= 2 && source_row < 10; - } else { + else return true; - } } } private: - bool mode; + bool mode = false; }; void tst_QSortFilterProxyModel::hierarchyFilterInvalidation() @@ -3989,13 +3963,7 @@ class FilterProxy2 : public QSortFilterProxyModel { Q_OBJECT public: - FilterProxy2(QObject *parent = 0) - : QSortFilterProxyModel(parent), - mode(false) - { - - } - + using QSortFilterProxyModel::QSortFilterProxyModel; public slots: void setMode(bool on) { @@ -4004,21 +3972,17 @@ public slots: } protected: - virtual bool filterAcceptsRow ( int source_row, const QModelIndex & source_parent ) const + bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const override { - if (source_parent.isValid()) { + if (source_parent.isValid()) return true; - } else { - if (0 == source_row) { - return true; - } else { - return !mode; - } - } + if (0 == source_row) + return true; + return !mode; } private: - bool mode; + bool mode = false; }; void tst_QSortFilterProxyModel::simpleFilterInvalidation() @@ -4047,22 +4011,21 @@ class CustomRoleNameModel : public QAbstractListModel { Q_OBJECT public: - CustomRoleNameModel(QObject *parent = 0) : QAbstractListModel(parent) {} - - QVariant data(const QModelIndex &index, int role) const + using QAbstractListModel::QAbstractListModel; + QVariant data(const QModelIndex &index, int role) const override { - Q_UNUSED(index); - Q_UNUSED(role); + Q_UNUSED(index) + Q_UNUSED(role) return QVariant(); } - int rowCount(const QModelIndex &parent = QModelIndex()) const + int rowCount(const QModelIndex &parent = QModelIndex()) const override { - Q_UNUSED(parent); + Q_UNUSED(parent) return 0; } - QHash roleNames() const + QHash roleNames() const override { QHash rn = QAbstractListModel::roleNames(); rn[Qt::UserRole + 1] = "custom"; @@ -4089,8 +4052,7 @@ class DropOnOddRows : public QAbstractListModel { Q_OBJECT public: - DropOnOddRows(QObject *parent = 0) : QAbstractListModel(parent) {} - + using QAbstractListModel::QAbstractListModel; QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override { if (role == Qt::DisplayRole) @@ -4100,15 +4062,15 @@ public: int rowCount(const QModelIndex &parent = QModelIndex()) const override { - Q_UNUSED(parent); + Q_UNUSED(parent) return 10; } bool canDropMimeData(const QMimeData *, Qt::DropAction, int row, int column, const QModelIndex &parent) const override { - Q_UNUSED(row); - Q_UNUSED(column); + Q_UNUSED(row) + Q_UNUSED(column) return parent.row() % 2 == 0; } }; @@ -4117,12 +4079,7 @@ class SourceAssertion : public QSortFilterProxyModel { Q_OBJECT public: - explicit SourceAssertion(QObject *parent = 0) - : QSortFilterProxyModel(parent) - { - - } - + using QSortFilterProxyModel::QSortFilterProxyModel; QModelIndex mapToSource(const QModelIndex &proxyIndex) const override { Q_ASSERT(sourceModel()); @@ -4150,9 +4107,11 @@ void tst_QSortFilterProxyModel::noMapAfterSourceDelete() // QTBUG-39549, test whether canDropMimeData(), dropMimeData() are proxied as well // by invoking them on a QSortFilterProxyModel proxying a QStandardItemModel that allows drops // on row #1, filtering for that row. -class DropTestModel : public QStandardItemModel { +class DropTestModel : public QStandardItemModel +{ + Q_OBJECT public: - explicit DropTestModel(QObject *parent = 0) : QStandardItemModel(0, 1, parent) + explicit DropTestModel(QObject *parent = nullptr) : QStandardItemModel(0, 1, parent) { appendRow(new QStandardItem(QStringLiteral("Row0"))); appendRow(new QStandardItem(QStringLiteral("Row1"))); @@ -4173,11 +4132,12 @@ void tst_QSortFilterProxyModel::forwardDropApi() model.setSourceModel(new DropTestModel(&model)); model.setFilterFixedString(QStringLiteral("Row1")); QCOMPARE(model.rowCount(), 1); - QVERIFY(model.canDropMimeData(0, Qt::CopyAction, 0, 0, QModelIndex())); - QVERIFY(model.dropMimeData(0, Qt::CopyAction, 0, 0, QModelIndex())); + QVERIFY(model.canDropMimeData(nullptr, Qt::CopyAction, 0, 0, QModelIndex())); + QVERIFY(model.dropMimeData(nullptr, Qt::CopyAction, 0, 0, QModelIndex())); } -static QString rowTexts(QAbstractItemModel *model) { +static QString rowTexts(QAbstractItemModel *model) +{ QString str; for (int row = 0 ; row < model->rowCount(); ++row) str += model->index(row, 0).data().toString(); @@ -4199,7 +4159,7 @@ void tst_QSortFilterProxyModel::canDropMimeData() // the proxy should correctly map canDropMimeData to the source model, // i.e. accept drops on the first 5 rows and refuse drops on the next 5. for (int row = 0; row < proxy.rowCount(); ++row) - QCOMPARE(proxy.canDropMimeData(0, Qt::CopyAction, -1, -1, proxy.index(row, 0)), row < 5); + QCOMPARE(proxy.canDropMimeData(nullptr, Qt::CopyAction, -1, -1, proxy.index(row, 0)), row < 5); } void tst_QSortFilterProxyModel::resortingDoesNotBreakTreeModels() @@ -4239,12 +4199,7 @@ void tst_QSortFilterProxyModel::resortingDoesNotBreakTreeModels() void tst_QSortFilterProxyModel::filterHint() { // test that a filtering model does not emit layoutChanged with a hint - QStringListModel model(QStringList() << "one" - << "two" - << "three" - << "four" - << "five" - << "six"); + QStringListModel model({"one", "two", "three", "four", "five", "six"}); QSortFilterProxyModel proxy1; proxy1.setSourceModel(&model); proxy1.setSortRole(Qt::DisplayRole); @@ -4296,8 +4251,7 @@ class StepTreeModel : public QAbstractItemModel { Q_OBJECT public: - StepTreeModel(QObject * parent = 0) - : QAbstractItemModel(parent), m_depth(0) {} + using QAbstractItemModel::QAbstractItemModel; int columnCount(const QModelIndex& = QModelIndex()) const override { return 1; } @@ -4338,7 +4292,7 @@ public: void setDepth(quintptr depth) { - int parentIdWithLayoutChange = (m_depth < depth) ? m_depth : depth; + quintptr parentIdWithLayoutChange = (m_depth < depth) ? m_depth : depth; QList parentsOfLayoutChange; parentsOfLayoutChange.push_back(createIndex(0, 0, parentIdWithLayoutChange)); @@ -4370,7 +4324,7 @@ private: } private: - quintptr m_depth; + quintptr m_depth = 0; }; void tst_QSortFilterProxyModel::sourceLayoutChangeLeavesValidPersistentIndexes() @@ -4439,7 +4393,7 @@ void tst_QSortFilterProxyModel::rowMoveLeavesValidPersistentIndexes() QPersistentModelIndex persistentIndex = proxy1.match(proxy1.index(0, 0), Qt::DisplayRole, "2", 1, Qt::MatchRecursive).first(); - ModelMoveCommand moveCommand(&model, 0); + ModelMoveCommand moveCommand(&model, nullptr); moveCommand.setAncestorRowNumbers(QList{0, 0, 0, 0}); moveCommand.setStartRow(0); moveCommand.setEndRow(0); @@ -4578,7 +4532,7 @@ void tst_QSortFilterProxyModel::emitLayoutChangedOnlyIfSortingChanged() void tst_QSortFilterProxyModel::removeIntervals_data() { QTest::addColumn("sourceItems"); - QTest::addColumn("sortOrder"); + QTest::addColumn("sortOrder"); QTest::addColumn("filter"); QTest::addColumn("replacementSourceItems"); QTest::addColumn("expectedRemovedProxyIntervals"); @@ -4588,7 +4542,7 @@ void tst_QSortFilterProxyModel::removeIntervals_data() << (QStringList() << "a" << "b" << "c") // sourceItems - << static_cast(Qt::AscendingOrder) // sortOrder + << Qt::AscendingOrder // sortOrder << "[^x]" // filter << (QStringList() << "x" << "x" @@ -4601,7 +4555,7 @@ void tst_QSortFilterProxyModel::removeIntervals_data() << (QStringList() << "a" << "b" << "c") // sourceItems - << static_cast(Qt::DescendingOrder) // sortOrder + << Qt::DescendingOrder // sortOrder << "[^x]" // filter << (QStringList() << "x" << "x" @@ -4614,7 +4568,7 @@ void tst_QSortFilterProxyModel::removeIntervals_data() << (QStringList() << "a" << "b" << "c") // sourceItems - << static_cast(Qt::AscendingOrder) // sortOrder + << Qt::AscendingOrder // sortOrder << "[^x]" // filter << (QStringList() << "x" << "b" @@ -4627,7 +4581,7 @@ void tst_QSortFilterProxyModel::removeIntervals_data() << (QStringList() << "a" << "b" << "c") // sourceItems - << static_cast(Qt::DescendingOrder) // sortOrder + << Qt::DescendingOrder // sortOrder << "[^x]" // filter << (QStringList() << "x" << "b" @@ -4640,7 +4594,7 @@ void tst_QSortFilterProxyModel::removeIntervals_data() void tst_QSortFilterProxyModel::removeIntervals() { QFETCH(QStringList, sourceItems); - QFETCH(int, sortOrder); + QFETCH(Qt::SortOrder, sortOrder); QFETCH(QString, filter); QFETCH(QStringList, replacementSourceItems); QFETCH(IntPairList, expectedRemovedProxyIntervals); @@ -4659,9 +4613,7 @@ void tst_QSortFilterProxyModel::removeIntervals() } proxy.setDynamicSortFilter(true); - - if (sortOrder != -1) - proxy.sort(0, static_cast(sortOrder)); + proxy.sort(0, sortOrder); if (!filter.isEmpty()) setupFilter(&proxy, filter); @@ -4681,7 +4633,7 @@ void tst_QSortFilterProxyModel::removeIntervals() QCOMPARE(aboutToRemoveSpy.count(), expectedRemovedProxyIntervals.count()); for (int i = 0; i < aboutToRemoveSpy.count(); ++i) { - QList args = aboutToRemoveSpy.at(i); + const auto &args = aboutToRemoveSpy.at(i); QCOMPARE(args.at(1).type(), QVariant::Int); QCOMPARE(args.at(2).type(), QVariant::Int); QCOMPARE(args.at(1).toInt(), expectedRemovedProxyIntervals.at(i).first); @@ -4689,7 +4641,7 @@ void tst_QSortFilterProxyModel::removeIntervals() } QCOMPARE(removeSpy.count(), expectedRemovedProxyIntervals.count()); for (int i = 0; i < removeSpy.count(); ++i) { - QList args = removeSpy.at(i); + const auto &args = removeSpy.at(i); QCOMPARE(args.at(1).type(), QVariant::Int); QCOMPARE(args.at(2).type(), QVariant::Int); QCOMPARE(args.at(1).toInt(), expectedRemovedProxyIntervals.at(i).first); @@ -4838,8 +4790,8 @@ void tst_QSortFilterProxyModel::filterAndInsertColumn_data() void tst_QSortFilterProxyModel::filterAndInsertColumn() { - class ColumnFilterProxy : public QSortFilterProxyModel { - Q_DISABLE_COPY(ColumnFilterProxy) + class ColumnFilterProxy : public QSortFilterProxyModel + { ColumnFilterMode filerMode; public: ColumnFilterProxy(ColumnFilterMode mode) diff --git a/tests/auto/corelib/itemmodels/qsortfilterproxymodel_common/tst_qsortfilterproxymodel.h b/tests/auto/corelib/itemmodels/qsortfilterproxymodel_common/tst_qsortfilterproxymodel.h index 8ae97165b8..71662bda07 100644 --- a/tests/auto/corelib/itemmodels/qsortfilterproxymodel_common/tst_qsortfilterproxymodel.h +++ b/tests/auto/corelib/itemmodels/qsortfilterproxymodel_common/tst_qsortfilterproxymodel.h @@ -29,19 +29,10 @@ #ifndef TST_QSORTFILTERPROXYMODEL_H #define TST_QSORTFILTERPROXYMODEL_H -#include #include "dynamictreemodel.h" - -#include -#include -#include -#include - -#include - -typedef QList IntList; -typedef QPair IntPair; -typedef QList IntPairList; +#include +#include +#include enum class FilterType { RegExp, @@ -53,10 +44,6 @@ Q_DECLARE_METATYPE(QList) class tst_QSortFilterProxyModel : public QObject { Q_OBJECT - -public: - tst_QSortFilterProxyModel(); - public slots: void initTestCase(); void cleanupTestCase(); @@ -181,8 +168,8 @@ protected: FilterType m_filterType; private: - QStandardItemModel *m_model; - QSortFilterProxyModel *m_proxy; + QStandardItemModel *m_model = nullptr; + QSortFilterProxyModel *m_proxy = nullptr; }; Q_DECLARE_METATYPE(QAbstractItemModel::LayoutChangeHint) diff --git a/tests/auto/corelib/itemmodels/qsortfilterproxymodel_recursive/tst_qsortfilterproxymodel_recursive.cpp b/tests/auto/corelib/itemmodels/qsortfilterproxymodel_recursive/tst_qsortfilterproxymodel_recursive.cpp index 7cae554963..dbafedbb5d 100644 --- a/tests/auto/corelib/itemmodels/qsortfilterproxymodel_recursive/tst_qsortfilterproxymodel_recursive.cpp +++ b/tests/auto/corelib/itemmodels/qsortfilterproxymodel_recursive/tst_qsortfilterproxymodel_recursive.cpp @@ -28,9 +28,8 @@ #include #include - -#include -#include +#include +#include Q_DECLARE_METATYPE(QModelIndex) -- cgit v1.2.3