diff --git a/tests/auto/qtquick2/qquickgridview/tst_qquickgridview.cpp b/tests/auto/qtquick2/qquickgridview/tst_qquickgridview.cpp index 241e2e9dc0f7218a7ae0c42dfe21fc1160ff0f46..b1edb2246b61aab1975672565a92828ce88376c1 100644 --- a/tests/auto/qtquick2/qquickgridview/tst_qquickgridview.cpp +++ b/tests/auto/qtquick2/qquickgridview/tst_qquickgridview.cpp @@ -134,23 +134,28 @@ private: template<typename T> void tst_qquickgridview_move(int from, int to, int n, T *items) { - if (n == 1) { - items->move(from, to); - } else { - T replaced; - int i=0; - typename T::ConstIterator it=items->begin(); it += from+n; - for (; i<to-from; ++i,++it) - replaced.append(*it); - i=0; - it=items->begin(); it += from; - for (; i<n; ++i,++it) - replaced.append(*it); - typename T::ConstIterator f=replaced.begin(); - typename T::Iterator t=items->begin(); t += from; - for (; f != replaced.end(); ++f, ++t) - *t = *f; - } + if (from > to) { + // Only move forwards - flip if backwards moving + int tfrom = from; + int tto = to; + from = tto; + to = tto+n; + n = tfrom-tto; + } + + T replaced; + int i=0; + typename T::ConstIterator it=items->begin(); it += from+n; + for (; i<to-from; ++i,++it) + replaced.append(*it); + i=0; + it=items->begin(); it += from; + for (; i<n; ++i,++it) + replaced.append(*it); + typename T::ConstIterator f=replaced.begin(); + typename T::Iterator t=items->begin(); t += from; + for (; f != replaced.end(); ++f, ++t) + *t = *f; } void tst_QQuickGridView::initTestCase() @@ -969,7 +974,7 @@ void tst_QQuickGridView::moved() QQuickText *name; QQuickText *number; - QQuickView *canvas = createView(); + QScopedPointer<QQuickView> canvas(createView()); canvas->show(); TestModel model; @@ -997,7 +1002,7 @@ void tst_QQuickGridView::moved() model.moveItems(from, to, count); // wait for items to move - QTest::qWait(300); + QTRY_COMPARE(QQuickItemPrivate::get(gridview)->polishScheduled, false); // Confirm items positioned correctly and indexes correct int firstVisibleIndex = qCeil(contentY / 60.0) * 3; @@ -1022,8 +1027,6 @@ void tst_QQuickGridView::moved() if (item == currentItem) QTRY_COMPARE(gridview->currentIndex(), i); } - - delete canvas; } void tst_QQuickGridView::moved_data() diff --git a/tests/auto/qtquick2/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp b/tests/auto/qtquick2/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp index 9e27a202b264f784a01d5c593d4e24b9cd835d03..af3af574360a6594e15599e44b645e7b894aa32e 100644 --- a/tests/auto/qtquick2/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp +++ b/tests/auto/qtquick2/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp @@ -688,26 +688,18 @@ void tst_qquickvisualdatamodel::qaimRowsMoved() QSignalSpy spy(obj, SIGNAL(modelUpdated(QDeclarativeChangeSet,bool))); model.emitMove(sourceFirst, sourceLast, destinationChild); - // QAbstractItemModel also emits the changed signal when items are moved. - QCOMPARE(spy.count(), 2); - - bool move = false; - for (int i = 0; i < 2; ++i) { - QCOMPARE(spy[1].count(), 2); - QDeclarativeChangeSet changeSet = spy[i][0].value<QDeclarativeChangeSet>(); - if (!changeSet.changes().isEmpty()) - continue; - move = true; - QCOMPARE(changeSet.removes().count(), 1); - QCOMPARE(changeSet.removes().at(0).index, expectFrom); - QCOMPARE(changeSet.removes().at(0).count, expectCount); - QCOMPARE(changeSet.inserts().count(), 1); - QCOMPARE(changeSet.inserts().at(0).index, expectTo); - QCOMPARE(changeSet.inserts().at(0).count, expectCount); - QCOMPARE(changeSet.removes().at(0).moveId, changeSet.inserts().at(0).moveId); - QCOMPARE(spy[i][1].toBool(), false); - } - QVERIFY(move); + QCOMPARE(spy.count(), 1); + + QCOMPARE(spy[0].count(), 2); + QDeclarativeChangeSet changeSet = spy[0][0].value<QDeclarativeChangeSet>(); + QCOMPARE(changeSet.removes().count(), 1); + QCOMPARE(changeSet.removes().at(0).index, expectFrom); + QCOMPARE(changeSet.removes().at(0).count, expectCount); + QCOMPARE(changeSet.inserts().count(), 1); + QCOMPARE(changeSet.inserts().at(0).index, expectTo); + QCOMPARE(changeSet.inserts().at(0).count, expectCount); + QCOMPARE(changeSet.removes().at(0).moveId, changeSet.inserts().at(0).moveId); + QCOMPARE(spy[0][1].toBool(), false); delete obj; }