845 QCOMPARE(testWidget->item(r)->text(), QString::number(r)); |
848 QCOMPARE(testWidget->item(r)->text(), QString::number(r)); |
846 else |
849 else |
847 QCOMPARE(testWidget->item(r)->text(), QString::number(r + removeRows)); |
850 QCOMPARE(testWidget->item(r)->text(), QString::number(r + removeRows)); |
848 |
851 |
849 |
852 |
|
853 } |
|
854 |
|
855 void tst_QListWidget::moveItemsPriv_data() |
|
856 { |
|
857 QTest::addColumn<int>("rowCount"); |
|
858 QTest::addColumn<int>("srcRow"); |
|
859 QTest::addColumn<int>("dstRow"); |
|
860 QTest::addColumn<bool>("shouldHaveSignaled"); |
|
861 |
|
862 QTest::newRow("Empty") << 0 << 0 << 0 << false; |
|
863 QTest::newRow("Overflow src") << 5 << 5 << 2 << false; |
|
864 QTest::newRow("Underflow src") << 5 << -1 << 2 << false; |
|
865 QTest::newRow("Overflow dst") << 5 << 2 << 6 << false; |
|
866 QTest::newRow("Underflow dst") << 5 << 2 << -1 << false; |
|
867 QTest::newRow("Same place") << 5 << 2 << 2 << false; |
|
868 QTest::newRow("Up") << 5 << 4 << 2 << true; |
|
869 QTest::newRow("Down") << 5 << 2 << 4 << true; |
|
870 QTest::newRow("QTBUG-6532 assert") << 5 << 0 << 1 << false; |
|
871 QTest::newRow("QTBUG-6565 to the end") << 5 << 3 << 5 << true; |
|
872 QTest::newRow("Same place 2") << 2 << 0 << 1 << false; |
|
873 QTest::newRow("swap") << 2 << 0 << 2 << true; |
|
874 QTest::newRow("swap2") << 4 << 1 << 3 << true; |
|
875 QTest::newRow("swap3") << 4 << 3 << 2 << true; |
|
876 QTest::newRow("swap4") << 2 << 1 << 0 << true; |
|
877 } |
|
878 |
|
879 void tst_QListWidget::moveItemsPriv() |
|
880 { |
|
881 QFETCH(int, rowCount); |
|
882 QFETCH(int, srcRow); |
|
883 QFETCH(int, dstRow); |
|
884 QFETCH(bool, shouldHaveSignaled); |
|
885 |
|
886 for (int r = 0; r < rowCount; ++r) |
|
887 new QListWidgetItem(QString::number(r), testWidget); |
|
888 |
|
889 QListModel *model = qobject_cast<QListModel *>(testWidget->model()); |
|
890 QVERIFY(model); |
|
891 QSignalSpy beginMoveSpy(model, SIGNAL(rowsAboutToBeMoved(QModelIndex,int,int,QModelIndex,int))); |
|
892 QSignalSpy movedSpy(model, SIGNAL(rowsMoved(QModelIndex,int,int,QModelIndex,int))); |
|
893 model->move(srcRow, dstRow); |
|
894 |
|
895 if (shouldHaveSignaled) { |
|
896 if (srcRow < dstRow) |
|
897 QCOMPARE(testWidget->item(dstRow - 1)->text(), QString::number(srcRow)); |
|
898 else |
|
899 QCOMPARE(testWidget->item(dstRow)->text(), QString::number(srcRow)); |
|
900 |
|
901 QCOMPARE(beginMoveSpy.count(), 1); |
|
902 const QList<QVariant> &beginMoveArgs = beginMoveSpy.takeFirst(); |
|
903 QCOMPARE(beginMoveArgs.at(1).toInt(), srcRow); |
|
904 QCOMPARE(beginMoveArgs.at(2).toInt(), srcRow); |
|
905 QCOMPARE(beginMoveArgs.at(4).toInt(), dstRow); |
|
906 |
|
907 QCOMPARE(movedSpy.count(), 1); |
|
908 const QList<QVariant> &movedArgs = movedSpy.takeFirst(); |
|
909 QCOMPARE(movedArgs.at(1).toInt(), srcRow); |
|
910 QCOMPARE(movedArgs.at(2).toInt(), srcRow); |
|
911 QCOMPARE(movedArgs.at(4).toInt(), dstRow); |
|
912 } else { |
|
913 QCOMPARE(beginMoveSpy.count(), 0); |
|
914 QCOMPARE(movedSpy.count(), 0); |
|
915 } |
850 } |
916 } |
851 |
917 |
852 void tst_QListWidget::itemStreaming_data() |
918 void tst_QListWidget::itemStreaming_data() |
853 { |
919 { |
854 QTest::addColumn<QString>("text"); |
920 QTest::addColumn<QString>("text"); |