diff options
Diffstat (limited to 'tests/auto/quick')
8 files changed, 207 insertions, 456 deletions
diff --git a/tests/auto/quick/qquickgridview/tst_qquickgridview.cpp b/tests/auto/quick/qquickgridview/tst_qquickgridview.cpp index ef4b27b767..c8991ccc7a 100644 --- a/tests/auto/quick/qquickgridview/tst_qquickgridview.cpp +++ b/tests/auto/quick/qquickgridview/tst_qquickgridview.cpp @@ -53,7 +53,6 @@ #include <QtQuick/private/qquicktext_p.h> #include <QtQuick/private/qquickvisualitemmodel_p.h> #include <QtQml/private/qquicklistmodel_p.h> -#include <QtQml/private/qlistmodelinterface_p.h> #include "../../shared/util.h" #include "../shared/viewtestutil.h" #include "../shared/visualtestutil.h" @@ -1832,7 +1831,7 @@ void tst_QQuickGridView::currentIndex() QCOMPARE(gridview->contentY(), 400.0); // changing model should reset currentIndex to 0 - QmlListModel model; + QaimModel model; for (int i = 0; i < 60; i++) model.addItem("Item" + QString::number(i), QString::number(i)); ctxt->setContextProperty("testModel", &model); @@ -1947,7 +1946,7 @@ void tst_QQuickGridView::keyNavigation() QFETCH(int, indexUpFrom7); QFETCH(int, indexDownFrom7); - QmlListModel model; + QaimModel model; for (int i = 0; i < 18; i++) model.addItem("Item" + QString::number(i), ""); @@ -3577,8 +3576,9 @@ void tst_QQuickGridView::extents() QQuickView *window = getView(); - QmlListModel model; + QaimModel model; QQmlContext *ctxt = window->rootContext(); + ctxt->setContextProperty("testModel", &model); window->setSource(testFileUrl("headerfooter.qml")); window->show(); @@ -3940,7 +3940,7 @@ void tst_QQuickGridView::resizeGrid_data() void tst_QQuickGridView::changeColumnCount() { - QmlListModel model; + QaimModel model; for (int i = 0; i < 40; i++) model.addItem("Item" + QString::number(i), ""); @@ -5620,7 +5620,7 @@ void tst_QQuickGridView::multipleTransitions() QPointF removeTargets_transitionTo(-100, 300); QPointF removeDisplaced_transitionFrom(100, 300); - QmlListModel model; + QaimModel model; for (int i = 0; i < initialCount; i++) model.addItem("Original item" + QString::number(i), ""); @@ -5795,7 +5795,7 @@ void tst_QQuickGridView::multipleDisplaced() // moved from previously set positions, and not those that have moved from their current // item positions (which may e.g. still be changing from easing bounces in the last transition) - QmlListModel model; + QaimModel model; for (int i = 0; i < 30; i++) model.addItem("Original item" + QString::number(i), ""); diff --git a/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp b/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp index 50c4a0a1a8..0ca2c6a679 100644 --- a/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp +++ b/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp @@ -75,39 +75,29 @@ public: private slots: void init(); void cleanupTestCase(); - // Test both QListModelInterface and QAbstractItemModel model types - void qListModelInterface_items(); - void qListModelInterface_package_items(); + // Test QAbstractItemModel model types + void qAbstractItemModel_package_items(); void qAbstractItemModel_items(); - void qListModelInterface_changed(); - void qListModelInterface_package_changed(); + void qAbstractItemModel_package_changed(); void qAbstractItemModel_changed(); - void qListModelInterface_inserted(); - void qListModelInterface_inserted_more(); - void qListModelInterface_inserted_more_data(); - void qListModelInterface_package_inserted(); + void qAbstractItemModel_package_inserted(); void qAbstractItemModel_inserted(); void qAbstractItemModel_inserted_more(); void qAbstractItemModel_inserted_more_data(); void qAbstractItemModel_inserted_more_bottomToTop(); void qAbstractItemModel_inserted_more_bottomToTop_data(); - void qListModelInterface_removed(); - void qListModelInterface_removed_more(); - void qListModelInterface_removed_more_data(); - void qListModelInterface_package_removed(); + void qAbstractItemModel_package_removed(); void qAbstractItemModel_removed(); void qAbstractItemModel_removed_more(); void qAbstractItemModel_removed_more_data(); void qAbstractItemModel_removed_more_bottomToTop(); void qAbstractItemModel_removed_more_bottomToTop_data(); - void qListModelInterface_moved(); - void qListModelInterface_moved_data(); - void qListModelInterface_package_moved(); - void qListModelInterface_package_moved_data(); + void qAbstractItemModel_package_moved(); + void qAbstractItemModel_package_moved_data(); void qAbstractItemModel_moved(); void qAbstractItemModel_moved_data(); void qAbstractItemModel_moved_bottomToTop(); @@ -118,8 +108,7 @@ private slots: void multipleChanges_uncondensed() { multipleChanges(false); } void multipleChanges_uncondensed_data() { multipleChanges_data(); } - void qListModelInterface_clear(); - void qListModelInterface_package_clear(); + void qAbstractItemModel_package_clear(); void qAbstractItemModel_clear(); void qAbstractItemModel_clear_bottomToTop(); @@ -137,8 +126,7 @@ private slots: void enforceRange(); void enforceRange_withoutHighlight(); void spacing(); - void qListModelInterface_sections(); - void qListModelInterface_package_sections(); + void qAbstractItemModel_package_sections(); void qAbstractItemModel_sections(); void sectionsPositioning(); void sectionsDelegate(); @@ -740,7 +728,7 @@ void tst_QQuickListView::insertBeforeVisible() QQuickText *name; QQuickView *window = getView(); - QmlListModel model; + QaimModel model; for (int i = 0; i < 30; i++) model.addItem("Item" + QString::number(i), ""); @@ -1485,7 +1473,7 @@ void tst_QQuickListView::multipleChanges(bool condensed) QQuickView *window = getView(); - QmlListModel model; + QaimModel model; for (int i = 0; i < startCount; i++) model.addItem("Item" + QString::number(i), ""); @@ -1733,7 +1721,7 @@ void tst_QQuickListView::swapWithFirstItem() { QQuickView *window = createView(); - QmlListModel model; + QaimModel model; for (int i = 0; i < 30; i++) model.addItem("Item" + QString::number(i), ""); @@ -1764,7 +1752,7 @@ void tst_QQuickListView::enforceRange() { QQuickView *window = createView(); - QmlListModel model; + QaimModel model; for (int i = 0; i < 30; i++) model.addItem("Item" + QString::number(i), ""); @@ -1804,7 +1792,7 @@ void tst_QQuickListView::enforceRange() QTRY_COMPARE(listview->currentIndex(), 6); // change model - QmlListModel model2; + QaimModel model2; for (int i = 0; i < 5; i++) model2.addItem("Item" + QString::number(i), ""); @@ -1823,7 +1811,7 @@ void tst_QQuickListView::enforceRange_withoutHighlight() QQuickView *window = createView(); - QmlListModel model; + QaimModel model; model.addItem("Item 0", "a"); model.addItem("Item 1", "b"); model.addItem("Item 2", "b"); @@ -1865,7 +1853,7 @@ void tst_QQuickListView::spacing() { QQuickView *window = createView(); - QmlListModel model; + QaimModel model; for (int i = 0; i < 30; i++) model.addItem("Item" + QString::number(i), ""); @@ -2024,7 +2012,7 @@ void tst_QQuickListView::sectionsDelegate() { QQuickView *window = createView(); - QmlListModel model; + QaimModel model; for (int i = 0; i < 30; i++) model.addItem("Item" + QString::number(i), QString::number(i/5)); @@ -2133,7 +2121,7 @@ void tst_QQuickListView::sectionsDragOutsideBounds() QQuickView *window = getView(); - QmlListModel model; + QaimModel model; for (int i = 0; i < 10; i++) model.addItem("Item" + QString::number(i), QString::number(i/5)); @@ -2181,7 +2169,7 @@ void tst_QQuickListView::sectionsDelegate_headerVisibility() QQuickView *window = createView(); - QmlListModel model; + QaimModel model; for (int i = 0; i < 30; i++) model.addItem("Item" + QString::number(i), QString::number(i/5)); @@ -2212,7 +2200,7 @@ void tst_QQuickListView::sectionsPositioning() { QQuickView *window = createView(); - QmlListModel model; + QaimModel model; for (int i = 0; i < 30; i++) model.addItem("Item" + QString::number(i), QString::number(i/5)); @@ -2358,7 +2346,7 @@ void tst_QQuickListView::sectionsPositioning() window->rootObject()->setProperty("sectionPositioning", QVariant(int(QQuickViewSection::InlineLabels | QQuickViewSection::CurrentLabelAtStart | QQuickViewSection::NextLabelAtEnd))); QTRY_VERIFY(findVisibleChild(contentItem, "sect_aaa")); // section header QTRY_VERIFY(findVisibleChild(contentItem, "sect_new")); // section footer - QmlListModel model1; + QaimModel model1; ctxt->setContextProperty("testModel", &model1); QTRY_VERIFY(!findVisibleChild(contentItem, "sect_aaa")); // section header QTRY_VERIFY(!findVisibleChild(contentItem, "sect_new")); // section footer @@ -2515,7 +2503,8 @@ void tst_QQuickListView::currentIndex_delayedItemCreation_data() void tst_QQuickListView::currentIndex() { - QmlListModel initModel; + QaimModel initModel; + for (int i = 0; i < 30; i++) initModel.addItem("Item" + QString::number(i), QString::number(i)); @@ -2545,7 +2534,7 @@ void tst_QQuickListView::currentIndex() QCOMPARE(listview->highlightItem()->y(), listview->currentItem()->y()); // changing model should reset currentIndex to 0 - QmlListModel model; + QaimModel model; for (int i = 0; i < 30; i++) model.addItem("Item" + QString::number(i), QString::number(i)); ctxt->setContextProperty("testModel", &model); @@ -2610,7 +2599,7 @@ void tst_QQuickListView::currentIndex() void tst_QQuickListView::noCurrentIndex() { - QmlListModel model; + QaimModel model; for (int i = 0; i < 30; i++) model.addItem("Item" + QString::number(i), QString::number(i)); @@ -2656,7 +2645,7 @@ void tst_QQuickListView::keyNavigation() QFETCH(QPointF, contentPosAtFirstItem); QFETCH(QPointF, contentPosAtLastItem); - QmlListModel model; + QaimModel model; for (int i = 0; i < 30; i++) model.addItem("Item" + QString::number(i), ""); @@ -2863,7 +2852,7 @@ void tst_QQuickListView::cacheBuffer() { QQuickView *window = createView(); - QmlListModel model; + QaimModel model; for (int i = 0; i < 90; i++) model.addItem("Item" + QString::number(i), ""); @@ -2964,7 +2953,7 @@ void tst_QQuickListView::positionViewAtIndex() { QQuickView *window = createView(); - QmlListModel model; + QaimModel model; for (int i = 0; i < 40; i++) model.addItem("Item" + QString::number(i), ""); @@ -3390,7 +3379,7 @@ void tst_QQuickListView::QTBUG_11105() { QQuickView *window = createView(); - QmlListModel model; + QaimModel model; for (int i = 0; i < 30; i++) model.addItem("Item" + QString::number(i), ""); @@ -3422,7 +3411,7 @@ void tst_QQuickListView::QTBUG_11105() listview->positionViewAtIndex(20, QQuickListView::Beginning); QCOMPARE(listview->contentY(), 280.); - QmlListModel model2; + QaimModel model2; for (int i = 0; i < 5; i++) model2.addItem("Item" + QString::number(i), ""); @@ -3467,7 +3456,7 @@ void tst_QQuickListView::header() QFETCH(QPointF, firstDelegatePos); QFETCH(QPointF, resizeContentPos); - QmlListModel model; + QaimModel model; for (int i = 0; i < 30; i++) model.addItem("Item" + QString::number(i), ""); @@ -3639,7 +3628,7 @@ void tst_QQuickListView::header_delayItemCreation() { QQuickView *window = createView(); - QmlListModel model; + QaimModel model; window->rootContext()->setContextProperty("setCurrentToZero", QVariant(false)); window->setSource(testFileUrl("fillModelOnComponentCompleted.qml")); @@ -3677,7 +3666,7 @@ void tst_QQuickListView::footer() QQuickView *window = getView(); - QmlListModel model; + QaimModel model; for (int i = 0; i < 3; i++) model.addItem("Item" + QString::number(i), ""); @@ -3868,8 +3857,9 @@ void tst_QQuickListView::extents() QQuickView *window = getView(); - QmlListModel model; + QaimModel model; QQmlContext *ctxt = window->rootContext(); + ctxt->setContextProperty("testModel", &model); window->setSource(testFileUrl("headerfooter.qml")); window->show(); @@ -3995,7 +3985,7 @@ void tst_QQuickListView::resizeView() { QQuickView *window = createView(); - QmlListModel model; + QaimModel model; for (int i = 0; i < 40; i++) model.addItem("Item" + QString::number(i), ""); @@ -4075,7 +4065,7 @@ void tst_QQuickListView::resizeViewAndRepaint() { QQuickView *window = createView(); - QmlListModel model; + QaimModel model; for (int i = 0; i < 40; i++) model.addItem("Item" + QString::number(i), ""); @@ -4110,7 +4100,7 @@ void tst_QQuickListView::sizeLessThan1() { QQuickView *window = createView(); - QmlListModel model; + QaimModel model; for (int i = 0; i < 30; i++) model.addItem("Item" + QString::number(i), ""); @@ -4251,7 +4241,7 @@ void tst_QQuickListView::resizeFirstDelegate() QQuickView *window = createView(); // bug only occurs when all items in the model are visible - QmlListModel model; + QaimModel model; for (int i = 0; i < 10; i++) model.addItem("Item" + QString::number(i), ""); @@ -4462,7 +4452,7 @@ void tst_QQuickListView::indexAt_itemAt() QQuickView *window = getView(); - QmlListModel model; + QaimModel model; for (int i = 0; i < 30; i++) model.addItem("Item" + QString::number(i), ""); @@ -5014,14 +5004,9 @@ void tst_QQuickListView::snapToItem() releaseView(window); } -void tst_QQuickListView::qListModelInterface_items() +void tst_QQuickListView::qAbstractItemModel_package_items() { - items<QmlListModel>(testFileUrl("listviewtest.qml"), false); -} - -void tst_QQuickListView::qListModelInterface_package_items() -{ - items<QmlListModel>(testFileUrl("listviewtest-package.qml"), true); + items<QaimModel>(testFileUrl("listviewtest-package.qml"), true); } void tst_QQuickListView::qAbstractItemModel_items() @@ -5029,14 +5014,9 @@ void tst_QQuickListView::qAbstractItemModel_items() items<QaimModel>(testFileUrl("listviewtest.qml"), false); } -void tst_QQuickListView::qListModelInterface_changed() -{ - changed<QmlListModel>(testFileUrl("listviewtest.qml"), false); -} - -void tst_QQuickListView::qListModelInterface_package_changed() +void tst_QQuickListView::qAbstractItemModel_package_changed() { - changed<QmlListModel>(testFileUrl("listviewtest-package.qml"), true); + changed<QaimModel>(testFileUrl("listviewtest-package.qml"), true); } void tst_QQuickListView::qAbstractItemModel_changed() @@ -5044,24 +5024,9 @@ void tst_QQuickListView::qAbstractItemModel_changed() changed<QaimModel>(testFileUrl("listviewtest.qml"), false); } -void tst_QQuickListView::qListModelInterface_inserted() -{ - inserted<QmlListModel>(testFileUrl("listviewtest.qml")); -} - -void tst_QQuickListView::qListModelInterface_package_inserted() +void tst_QQuickListView::qAbstractItemModel_package_inserted() { - inserted<QmlListModel>(testFileUrl("listviewtest-package.qml")); -} - -void tst_QQuickListView::qListModelInterface_inserted_more() -{ - inserted_more<QmlListModel>(); -} - -void tst_QQuickListView::qListModelInterface_inserted_more_data() -{ - inserted_more_data(); + inserted<QaimModel>(testFileUrl("listviewtest-package.qml")); } void tst_QQuickListView::qAbstractItemModel_inserted() @@ -5089,26 +5054,10 @@ void tst_QQuickListView::qAbstractItemModel_inserted_more_bottomToTop_data() inserted_more_data(); } -void tst_QQuickListView::qListModelInterface_removed() -{ - removed<QmlListModel>(testFileUrl("listviewtest.qml"), false); - removed<QmlListModel>(testFileUrl("listviewtest.qml"), true); -} - -void tst_QQuickListView::qListModelInterface_removed_more() -{ - removed_more<QmlListModel>(testFileUrl("listviewtest.qml")); -} - -void tst_QQuickListView::qListModelInterface_removed_more_data() -{ - removed_more_data(); -} - -void tst_QQuickListView::qListModelInterface_package_removed() +void tst_QQuickListView::qAbstractItemModel_package_removed() { - removed<QmlListModel>(testFileUrl("listviewtest-package.qml"), false); - removed<QmlListModel>(testFileUrl("listviewtest-package.qml"), true); + removed<QaimModel>(testFileUrl("listviewtest-package.qml"), false); + removed<QaimModel>(testFileUrl("listviewtest-package.qml"), true); } void tst_QQuickListView::qAbstractItemModel_removed() @@ -5137,22 +5086,12 @@ void tst_QQuickListView::qAbstractItemModel_removed_more_bottomToTop_data() removed_more_data(); } -void tst_QQuickListView::qListModelInterface_moved() +void tst_QQuickListView::qAbstractItemModel_package_moved() { - moved<QmlListModel>(testFileUrl("listviewtest.qml")); + moved<QaimModel>(testFileUrl("listviewtest-package.qml")); } -void tst_QQuickListView::qListModelInterface_moved_data() -{ - moved_data(); -} - -void tst_QQuickListView::qListModelInterface_package_moved() -{ - moved<QmlListModel>(testFileUrl("listviewtest-package.qml")); -} - -void tst_QQuickListView::qListModelInterface_package_moved_data() +void tst_QQuickListView::qAbstractItemModel_package_moved_data() { moved_data(); } @@ -5177,14 +5116,9 @@ void tst_QQuickListView::qAbstractItemModel_moved_bottomToTop_data() moved_data(); } -void tst_QQuickListView::qListModelInterface_clear() +void tst_QQuickListView::qAbstractItemModel_package_clear() { - clear<QmlListModel>(testFileUrl("listviewtest.qml")); -} - -void tst_QQuickListView::qListModelInterface_package_clear() -{ - clear<QmlListModel>(testFileUrl("listviewtest-package.qml")); + clear<QaimModel>(testFileUrl("listviewtest-package.qml")); } void tst_QQuickListView::qAbstractItemModel_clear() @@ -5197,14 +5131,9 @@ void tst_QQuickListView::qAbstractItemModel_clear_bottomToTop() clear<QaimModel>(testFileUrl("listviewtest.qml"), QQuickItemView::BottomToTop); } -void tst_QQuickListView::qListModelInterface_sections() -{ - sections<QmlListModel>(testFileUrl("listview-sections.qml")); -} - -void tst_QQuickListView::qListModelInterface_package_sections() +void tst_QQuickListView::qAbstractItemModel_package_sections() { - sections<QmlListModel>(testFileUrl("listview-sections-package.qml")); + sections<QaimModel>(testFileUrl("listview-sections-package.qml")); } void tst_QQuickListView::qAbstractItemModel_sections() @@ -5427,7 +5356,7 @@ void tst_QQuickListView::snapOneItem() void tst_QQuickListView::unrequestedVisibility() { - QmlListModel model; + QaimModel model; for (int i = 0; i < 30; i++) model.addItem("Item" + QString::number(i), QString::number(i)); @@ -6558,7 +6487,7 @@ void tst_QQuickListView::multipleTransitions() QPointF removeTargets_transitionTo(-100, 300); QPointF removeDisplaced_transitionFrom(100, 300); - QmlListModel model; + QaimModel model; for (int i = 0; i < initialCount; i++) model.addItem("Original item" + QString::number(i), ""); @@ -6724,7 +6653,7 @@ void tst_QQuickListView::multipleDisplaced() // moved from previously set positions, and not those that have moved from their current // item positions (which may e.g. still be changing from easing bounces in the last transition) - QmlListModel model; + QaimModel model; for (int i = 0; i < 30; i++) model.addItem("Original item" + QString::number(i), ""); @@ -6853,7 +6782,7 @@ void tst_QQuickListView::flickBeyondBounds() void tst_QQuickListView::destroyItemOnCreation() { - QmlListModel model; + QaimModel model; QQuickView *window = createView(); window->rootContext()->setContextProperty("testModel", &model); diff --git a/tests/auto/quick/qquickpositioners/tst_qquickpositioners.cpp b/tests/auto/quick/qquickpositioners/tst_qquickpositioners.cpp index 3fb20f7f5c..32ec41bb13 100644 --- a/tests/auto/quick/qquickpositioners/tst_qquickpositioners.cpp +++ b/tests/auto/quick/qquickpositioners/tst_qquickpositioners.cpp @@ -39,7 +39,6 @@ ** ****************************************************************************/ #include <QtTest/QtTest> -#include <private/qlistmodelinterface_p.h> #include <QtQuick/qquickview.h> #include <qqmlengine.h> #include <QtQuick/private/qquickrectangle_p.h> diff --git a/tests/auto/quick/qquickrepeater/tst_qquickrepeater.cpp b/tests/auto/quick/qquickrepeater/tst_qquickrepeater.cpp index 0fb2416808..8e58a026f9 100644 --- a/tests/auto/quick/qquickrepeater/tst_qquickrepeater.cpp +++ b/tests/auto/quick/qquickrepeater/tst_qquickrepeater.cpp @@ -41,7 +41,6 @@ #include <QtTest/QtTest> #include <QtTest/QSignalSpy> -#include <private/qlistmodelinterface_p.h> #include <QtQml/qqmlengine.h> #include <QtQuick/qquickview.h> #include <QtQml/qqmlcontext.h> diff --git a/tests/auto/quick/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp b/tests/auto/quick/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp index 533085bbc7..0ec7e51fee 100644 --- a/tests/auto/quick/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp +++ b/tests/auto/quick/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp @@ -877,7 +877,7 @@ void tst_qquickvisualdatamodel::packagesDestroyed() void tst_qquickvisualdatamodel::qaimRowsMoved() { // Test parameters passed in QAIM::rowsMoved() signal are converted correctly - // when translated and emitted as the QListModelInterface::itemsMoved() signal + // when translated to (from, to count) semantics. QFETCH(int, sourceFirst); QFETCH(int, sourceLast); QFETCH(int, destinationChild); @@ -3579,7 +3579,7 @@ void tst_qquickvisualdatamodel::asynchronousInsert() QQmlComponent c(&engine, testFileUrl("visualdatamodel.qml")); - QmlListModel model; + QaimModel model; for (int i = 0; i < 8; i++) model.addItem("Original item" + QString::number(i), ""); @@ -3644,7 +3644,7 @@ void tst_qquickvisualdatamodel::asynchronousRemove() QQmlComponent c(&engine, testFileUrl("visualdatamodel.qml")); - QmlListModel model; + QaimModel model; for (int i = 0; i < 8; i++) model.addItem("Original item" + QString::number(i), ""); @@ -3722,7 +3722,7 @@ void tst_qquickvisualdatamodel::asynchronousMove() QQmlComponent c(&engine, testFileUrl("visualdatamodel.qml")); - QmlListModel model; + QaimModel model; for (int i = 0; i < 8; i++) model.addItem("Original item" + QString::number(i), ""); @@ -3770,7 +3770,7 @@ void tst_qquickvisualdatamodel::asynchronousCancel() QQmlComponent c(&engine, testFileUrl("visualdatamodel.qml")); - QmlListModel model; + QaimModel model; for (int i = 0; i < 8; i++) model.addItem("Original item" + QString::number(i), ""); diff --git a/tests/auto/quick/qquickxmllistmodel/tst_qquickxmllistmodel.cpp b/tests/auto/quick/qquickxmllistmodel/tst_qquickxmllistmodel.cpp index 4d337564c0..53df019609 100644 --- a/tests/auto/quick/qquickxmllistmodel/tst_qquickxmllistmodel.cpp +++ b/tests/auto/quick/qquickxmllistmodel/tst_qquickxmllistmodel.cpp @@ -56,7 +56,6 @@ #include <QtQml/qqmlengine.h> #include <QtQml/qqmlcomponent.h> -#include <private/qlistmodelinterface_p.h> #include "../../../../src/imports/xmllistmodel/qqmlxmllistmodel_p.h" typedef QPair<int, int> QQuickXmlListRange; @@ -106,7 +105,7 @@ private slots: void roleCrash(); private: - QString errorString(QListModelInterface* model) { + QString errorString(QAbstractItemModel *model) { QString ret; QMetaObject::invokeMethod(model, "errorString", Q_RETURN_ARG(QString, ret)); return ret; @@ -196,14 +195,15 @@ QNetworkAccessManager *CustomNetworkAccessManagerFactory::create(QObject *parent void tst_qquickxmllistmodel::buildModel() { QQmlComponent component(&engine, testFileUrl("model.qml")); - QListModelInterface *model = qobject_cast<QListModelInterface*>(component.create()); + QAbstractItemModel *model = qobject_cast<QAbstractItemModel *>(component.create()); QVERIFY(model != 0); - QTRY_COMPARE(model->count(), 9); + QTRY_COMPARE(model->rowCount(), 9); - QCOMPARE(model->data(3, Qt::UserRole).toString(), QLatin1String("Spot")); - QCOMPARE(model->data(3, Qt::UserRole+1).toString(), QLatin1String("Dog")); - QCOMPARE(model->data(3, Qt::UserRole+2).toInt(), 9); - QCOMPARE(model->data(3, Qt::UserRole+3).toString(), QLatin1String("Medium")); + QModelIndex index = model->index(3, 0); + QCOMPARE(model->data(index, Qt::UserRole).toString(), QLatin1String("Spot")); + QCOMPARE(model->data(index, Qt::UserRole+1).toString(), QLatin1String("Dog")); + QCOMPARE(model->data(index, Qt::UserRole+2).toInt(), 9); + QCOMPARE(model->data(index, Qt::UserRole+3).toString(), QLatin1String("Medium")); delete model; } @@ -215,25 +215,20 @@ void tst_qquickxmllistmodel::testTypes() QFETCH(QVariant, expectedValue); QQmlComponent component(&engine, testFileUrl("testtypes.qml")); - QListModelInterface *model = qobject_cast<QListModelInterface*>(component.create()); + QAbstractItemModel *model = qobject_cast<QAbstractItemModel *>(component.create()); QVERIFY(model != 0); model->setProperty("xml",xml.toUtf8()); QMetaObject::invokeMethod(model, "reload"); - QTRY_COMPARE(model->count(), 1); + QTRY_COMPARE(model->rowCount(), 1); - int role = -1; - foreach (int i, model->roles()) { - if (model->toString(i) == roleName) { - role = i; - break; - } - } + int role = model->roleNames().key(roleName.toUtf8(), -1); QVERIFY(role >= 0); + QModelIndex index = model->index(0, 0); if (expectedValue.toString() == "nan") - QVERIFY(qIsNaN(model->data(0, role).toDouble())); + QVERIFY(qIsNaN(model->data(index, role).toDouble())); else - QCOMPARE(model->data(0, role), expectedValue); + QCOMPARE(model->data(index, role), expectedValue); delete model; } @@ -275,11 +270,11 @@ void tst_qquickxmllistmodel::testTypes_data() void tst_qquickxmllistmodel::cdata() { QQmlComponent component(&engine, testFileUrl("recipes.qml")); - QListModelInterface *model = qobject_cast<QListModelInterface*>(component.create()); + QAbstractItemModel *model = qobject_cast<QAbstractItemModel *>(component.create()); QVERIFY(model != 0); - QTRY_COMPARE(model->count(), 5); + QTRY_COMPARE(model->rowCount(), 5); - QVERIFY(model->data(2, Qt::UserRole+2).toString().startsWith(QLatin1String("<html>"))); + QVERIFY(model->data(model->index(2, 0), Qt::UserRole+2).toString().startsWith(QLatin1String("<html>"))); delete model; } @@ -287,10 +282,10 @@ void tst_qquickxmllistmodel::cdata() void tst_qquickxmllistmodel::attributes() { QQmlComponent component(&engine, testFileUrl("recipes.qml")); - QListModelInterface *model = qobject_cast<QListModelInterface*>(component.create()); + QAbstractItemModel *model = qobject_cast<QAbstractItemModel *>(component.create()); QVERIFY(model != 0); - QTRY_COMPARE(model->count(), 5); - QCOMPARE(model->data(2, Qt::UserRole).toString(), QLatin1String("Vegetable Soup")); + QTRY_COMPARE(model->rowCount(), 5); + QCOMPARE(model->data(model->index(2, 0), Qt::UserRole).toString(), QLatin1String("Vegetable Soup")); delete model; } @@ -298,16 +293,23 @@ void tst_qquickxmllistmodel::attributes() void tst_qquickxmllistmodel::roles() { QQmlComponent component(&engine, testFileUrl("model.qml")); - QListModelInterface *model = qobject_cast<QListModelInterface*>(component.create()); + QAbstractItemModel *model = qobject_cast<QAbstractItemModel *>(component.create()); QVERIFY(model != 0); - QTRY_COMPARE(model->count(), 9); - - QList<int> roles = model->roles(); + QTRY_COMPARE(model->rowCount(), 9); + + QHash<int, QByteArray> roleNames = model->roleNames(); + QCOMPARE(roleNames.count(), 4); + QVERIFY(roleNames.key("name", -1) >= 0); + QVERIFY(roleNames.key("type", -1) >= 0); + QVERIFY(roleNames.key("age", -1) >= 0); + QVERIFY(roleNames.key("size", -1) >= 0); + + QSet<int> roles; + roles.insert(roleNames.key("name")); + roles.insert(roleNames.key("type")); + roles.insert(roleNames.key("age")); + roles.insert(roleNames.key("size")); QCOMPARE(roles.count(), 4); - QCOMPARE(model->toString(roles.at(0)), QLatin1String("name")); - QCOMPARE(model->toString(roles.at(1)), QLatin1String("type")); - QCOMPARE(model->toString(roles.at(2)), QLatin1String("age")); - QCOMPARE(model->toString(roles.at(3)), QLatin1String("size")); delete model; } @@ -319,18 +321,18 @@ void tst_qquickxmllistmodel::roleErrors() QTest::ignoreMessage(QtWarningMsg, (testFileUrl("roleErrors.qml").toString() + ":10:5: QML XmlRole: invalid query: \"age/\"").toUtf8().constData()); //### make sure we receive all expected warning messages. - QListModelInterface *model = qobject_cast<QListModelInterface*>(component.create()); + QAbstractItemModel *model = qobject_cast<QAbstractItemModel *>(component.create()); QVERIFY(model != 0); - QTRY_COMPARE(model->count(), 9); - + QTRY_COMPARE(model->rowCount(), 9); + QModelIndex index = model->index(3, 0); //### should any of these return valid values? - QCOMPARE(model->data(3, Qt::UserRole), QVariant()); - QCOMPARE(model->data(3, Qt::UserRole+1), QVariant()); - QCOMPARE(model->data(3, Qt::UserRole+2), QVariant()); + QCOMPARE(model->data(index, Qt::UserRole), QVariant()); + QCOMPARE(model->data(index, Qt::UserRole+1), QVariant()); + QCOMPARE(model->data(index, Qt::UserRole+2), QVariant()); QEXPECT_FAIL("", "QTBUG-10797", Continue); - QCOMPARE(model->data(3, Qt::UserRole+3), QVariant()); + QCOMPARE(model->data(index, Qt::UserRole+3), QVariant()); delete model; } @@ -339,12 +341,12 @@ void tst_qquickxmllistmodel::uniqueRoleNames() { QQmlComponent component(&engine, testFileUrl("unique.qml")); QTest::ignoreMessage(QtWarningMsg, (testFileUrl("unique.qml").toString() + ":8:5: QML XmlRole: \"name\" duplicates a previous role name and will be disabled.").toUtf8().constData()); - QListModelInterface *model = qobject_cast<QListModelInterface*>(component.create()); + QAbstractItemModel *model = qobject_cast<QAbstractItemModel *>(component.create()); QVERIFY(model != 0); - QTRY_COMPARE(model->count(), 9); + QTRY_COMPARE(model->rowCount(), 9); - QList<int> roles = model->roles(); - QCOMPARE(roles.count(), 1); + QHash<int, QByteArray> roleNames = model->roleNames(); + QCOMPARE(roleNames.count(), 1); delete model; } @@ -356,7 +358,7 @@ void tst_qquickxmllistmodel::xml() QFETCH(int, count); QQmlComponent component(&engine, testFileUrl("model.qml")); - QListModelInterface *model = qobject_cast<QListModelInterface*>(component.create()); + QAbstractItemModel *model = qobject_cast<QAbstractItemModel *>(component.create()); QSignalSpy spy(model, SIGNAL(statusChanged(QQuickXmlListModel::Status))); QVERIFY(errorString(model).isEmpty()); @@ -369,7 +371,7 @@ void tst_qquickxmllistmodel::xml() QQuickXmlListModel::Ready); QVERIFY(errorString(model).isEmpty()); QCOMPARE(model->property("progress").toDouble(), qreal(1.0)); - QCOMPARE(model->count(), 9); + QCOMPARE(model->rowCount(), 9); // if xml is empty (i.e. clearing) it won't have any effect if a source is set if (xml.isEmpty()) @@ -387,7 +389,7 @@ void tst_qquickxmllistmodel::xml() QCOMPARE(qvariant_cast<QQuickXmlListModel::Status>(model->property("status")), QQuickXmlListModel::Ready); QVERIFY(errorString(model).isEmpty()); - QCOMPARE(model->count(), count); + QCOMPARE(model->rowCount(), count); delete model; } @@ -411,7 +413,7 @@ void tst_qquickxmllistmodel::headers() qmlEng.setNetworkAccessManagerFactory(&factory); QQmlComponent component(&qmlEng, testFileUrl("model.qml")); - QListModelInterface *model = qobject_cast<QListModelInterface*>(component.create()); + QAbstractItemModel *model = qobject_cast<QAbstractItemModel *>(component.create()); QVERIFY(model != 0); QTRY_COMPARE(qvariant_cast<QQuickXmlListModel::Status>(model->property("status")), QQuickXmlListModel::Ready); @@ -435,7 +437,7 @@ void tst_qquickxmllistmodel::source() QFETCH(QQuickXmlListModel::Status, status); QQmlComponent component(&engine, testFileUrl("model.qml")); - QListModelInterface *model = qobject_cast<QListModelInterface*>(component.create()); + QAbstractItemModel *model = qobject_cast<QAbstractItemModel *>(component.create()); QSignalSpy spy(model, SIGNAL(statusChanged(QQuickXmlListModel::Status))); QVERIFY(errorString(model).isEmpty()); @@ -447,7 +449,7 @@ void tst_qquickxmllistmodel::source() QQuickXmlListModel::Ready); QVERIFY(errorString(model).isEmpty()); QCOMPARE(model->property("progress").toDouble(), qreal(1.0)); - QCOMPARE(model->count(), 9); + QCOMPARE(model->rowCount(), 9); model->setProperty("source",source); if (model->property("source").toString().isEmpty()) @@ -474,7 +476,7 @@ void tst_qquickxmllistmodel::source() } QCOMPARE(qvariant_cast<QQuickXmlListModel::Status>(model->property("status")), status); - QCOMPARE(model->count(), count); + QCOMPARE(model->rowCount(), count); if (status == QQuickXmlListModel::Ready) QCOMPARE(model->property("progress").toDouble(), qreal(1.0)); @@ -506,15 +508,16 @@ void tst_qquickxmllistmodel::source_data() void tst_qquickxmllistmodel::data() { QQmlComponent component(&engine, testFileUrl("model.qml")); - QListModelInterface *model = qobject_cast<QListModelInterface*>(component.create()); + QAbstractItemModel *model = qobject_cast<QAbstractItemModel *>(component.create()); QVERIFY(model != 0); for (int i=0; i<9; i++) { - for (int j=0; j<model->roles().count(); j++) { - QCOMPARE(model->data(i, j), QVariant()); + QModelIndex index = model->index(i, 0); + for (int j=0; j<model->roleNames().count(); j++) { + QCOMPARE(model->data(index, j), QVariant()); } } - QTRY_COMPARE(model->count(), 9); + QTRY_COMPARE(model->rowCount(), 9); delete model; } @@ -522,14 +525,14 @@ void tst_qquickxmllistmodel::data() void tst_qquickxmllistmodel::get() { QQmlComponent component(&engine, testFileUrl("get.qml")); - QListModelInterface *model = qobject_cast<QListModelInterface*>(component.create()); + QAbstractItemModel *model = qobject_cast<QAbstractItemModel *>(component.create()); QVERIFY(model != 0); QVERIFY(QMetaObject::invokeMethod(model, "runPreTest")); QCOMPARE(model->property("preTest").toBool(), true); - QTRY_COMPARE(model->count(), 9); + QTRY_COMPARE(model->rowCount(), 9); QVERIFY(QMetaObject::invokeMethod(model, "runPostTest")); QCOMPARE(model->property("postTest").toBool(), true); @@ -543,12 +546,12 @@ void tst_qquickxmllistmodel::reload() // reload() is called. QQmlComponent component(&engine, testFileUrl("model.qml")); - QListModelInterface *model = qobject_cast<QListModelInterface*>(component.create()); + QAbstractItemModel *model = qobject_cast<QAbstractItemModel *>(component.create()); QVERIFY(model != 0); - QTRY_COMPARE(model->count(), 9); + QTRY_COMPARE(model->rowCount(), 9); - QSignalSpy spyInsert(model, SIGNAL(itemsInserted(int,int))); - QSignalSpy spyRemove(model, SIGNAL(itemsRemoved(int,int))); + QSignalSpy spyInsert(model, SIGNAL(rowsInserted(QModelIndex,int,int))); + QSignalSpy spyRemove(model, SIGNAL(rowsRemoved(QModelIndex,int,int))); QSignalSpy spyCount(model, SIGNAL(countChanged())); //reload multiple times to test the xml query aborting QMetaObject::invokeMethod(model, "reload"); @@ -556,15 +559,15 @@ void tst_qquickxmllistmodel::reload() QCoreApplication::processEvents(); QMetaObject::invokeMethod(model, "reload"); QMetaObject::invokeMethod(model, "reload"); - QTRY_COMPARE(spyCount.count(), 1); + QTRY_COMPARE(spyCount.count(), 0); QTRY_COMPARE(spyInsert.count(), 1); QTRY_COMPARE(spyRemove.count(), 1); - QCOMPARE(spyInsert[0][0].toInt(), 0); - QCOMPARE(spyInsert[0][1].toInt(), 9); + QCOMPARE(spyInsert[0][1].toInt(), 0); + QCOMPARE(spyInsert[0][2].toInt(), 8); - QCOMPARE(spyRemove[0][0].toInt(), 0); - QCOMPARE(spyRemove[0][1].toInt(), 9); + QCOMPARE(spyRemove[0][1].toInt(), 0); + QCOMPARE(spyRemove[0][2].toInt(), 8); delete model; } @@ -583,42 +586,44 @@ void tst_qquickxmllistmodel::useKeys() QFETCH(QList<QQuickXmlListRange>, removeRanges); QQmlComponent component(&engine, testFileUrl("roleKeys.qml")); - QListModelInterface *model = qobject_cast<QListModelInterface*>(component.create()); + QAbstractItemModel *model = qobject_cast<QAbstractItemModel *>(component.create()); QVERIFY(model != 0); model->setProperty("xml",oldXml); - QTRY_COMPARE(model->count(), oldCount); + QTRY_COMPARE(model->rowCount(), oldCount); - QSignalSpy spyInsert(model, SIGNAL(itemsInserted(int,int))); - QSignalSpy spyRemove(model, SIGNAL(itemsRemoved(int,int))); + QSignalSpy spyInsert(model, SIGNAL(rowsInserted(QModelIndex,int,int))); + QSignalSpy spyRemove(model, SIGNAL(rowsRemoved(QModelIndex,int,int))); QSignalSpy spyCount(model, SIGNAL(countChanged())); model->setProperty("xml",newXml); if (oldCount != newData.count()) { - QTRY_COMPARE(model->count(), newData.count()); + QTRY_COMPARE(model->rowCount(), newData.count()); QCOMPARE(spyCount.count(), 1); } else { QTRY_VERIFY(spyInsert.count() > 0 || spyRemove.count() > 0); QCOMPARE(spyCount.count(), 0); } - QList<int> roles = model->roles(); - for (int i=0; i<model->count(); i++) { + QList<int> roles = model->roleNames().keys(); + qSort(roles); + for (int i=0; i<model->rowCount(); i++) { + QModelIndex index = model->index(i, 0); for (int j=0; j<roles.count(); j++) - QCOMPARE(model->data(i, roles[j]), newData[i][j]); + QCOMPARE(model->data(index, roles.at(j)), newData[i][j]); } QCOMPARE(spyInsert.count(), insertRanges.count()); for (int i=0; i<spyInsert.count(); i++) { - QCOMPARE(spyInsert[i][0].toInt(), insertRanges[i].first); - QCOMPARE(spyInsert[i][1].toInt(), insertRanges[i].second); + QCOMPARE(spyInsert[i][1].toInt(), insertRanges[i].first); + QCOMPARE(spyInsert[i][2].toInt(), insertRanges[i].first + insertRanges[i].second - 1); } QCOMPARE(spyRemove.count(), removeRanges.count()); for (int i=0; i<spyRemove.count(); i++) { - QCOMPARE(spyRemove[i][0].toInt(), removeRanges[i].first); - QCOMPARE(spyRemove[i][1].toInt(), removeRanges[i].second); + QCOMPARE(spyRemove[i][1].toInt(), removeRanges[i].first); + QCOMPARE(spyRemove[i][2].toInt(), removeRanges[i].first + removeRanges[i].second - 1); } delete model; @@ -734,33 +739,35 @@ void tst_qquickxmllistmodel::noKeysValueChanges() // since 'sport' is not marked as a key. QQmlComponent component(&engine, testFileUrl("roleKeys.qml")); - QListModelInterface *model = qobject_cast<QListModelInterface*>(component.create()); + QAbstractItemModel *model = qobject_cast<QAbstractItemModel *>(component.create()); QVERIFY(model != 0); QString xml; xml = makeItemXmlAndData("name=A,age=25,sport=Football;name=B,age=35,sport=Athletics"); model->setProperty("xml",xml); - QTRY_COMPARE(model->count(), 2); + QTRY_COMPARE(model->rowCount(), 2); model->setProperty("xml",""); - QSignalSpy spyInsert(model, SIGNAL(itemsInserted(int,int))); - QSignalSpy spyRemove(model, SIGNAL(itemsRemoved(int,int))); + QSignalSpy spyInsert(model, SIGNAL(rowsInserted(QModelIndex,int,int))); + QSignalSpy spyRemove(model, SIGNAL(rowsRemoved(QModelIndex,int,int))); QSignalSpy spyCount(model, SIGNAL(countChanged())); xml = makeItemXmlAndData("name=A,age=25,sport=AussieRules;name=B,age=35,sport=Athletics"); model->setProperty("xml",xml); + QList<int> roles = model->roleNames().keys(); + qSort(roles); // wait for the new xml data to be set, and verify no signals were emitted - QTRY_VERIFY(model->data(0, model->roles()[2]).toString() != QLatin1String("Football")); - QCOMPARE(model->data(0, model->roles()[2]).toString(), QLatin1String("AussieRules")); + QTRY_VERIFY(model->data(model->index(0, 0), roles.at(2)).toString() != QLatin1String("Football")); + QCOMPARE(model->data(model->index(0, 0), roles.at(2)).toString(), QLatin1String("AussieRules")); QVERIFY(spyInsert.count() == 0); QVERIFY(spyRemove.count() == 0); QVERIFY(spyCount.count() == 0); - QCOMPARE(model->count(), 2); + QCOMPARE(model->rowCount(), 2); delete model; } @@ -772,17 +779,17 @@ void tst_qquickxmllistmodel::keysChanged() // if no keys are set). QQmlComponent component(&engine, testFileUrl("roleKeys.qml")); - QListModelInterface *model = qobject_cast<QListModelInterface*>(component.create()); + QAbstractItemModel *model = qobject_cast<QAbstractItemModel *>(component.create()); QVERIFY(model != 0); QString xml = makeItemXmlAndData("name=A,age=25,sport=Football;name=B,age=35,sport=Athletics"); model->setProperty("xml",xml); - QTRY_COMPARE(model->count(), 2); + QTRY_COMPARE(model->rowCount(), 2); model->setProperty("xml",""); - QSignalSpy spyInsert(model, SIGNAL(itemsInserted(int,int))); - QSignalSpy spyRemove(model, SIGNAL(itemsRemoved(int,int))); + QSignalSpy spyInsert(model, SIGNAL(rowsInserted(QModelIndex,int,int))); + QSignalSpy spyRemove(model, SIGNAL(rowsRemoved(QModelIndex,int,int))); QSignalSpy spyCount(model, SIGNAL(countChanged())); QVERIFY(QMetaObject::invokeMethod(model, "disableNameKey")); @@ -791,12 +798,12 @@ void tst_qquickxmllistmodel::keysChanged() QTRY_VERIFY(spyInsert.count() > 0 && spyRemove.count() > 0); QCOMPARE(spyInsert.count(), 1); - QCOMPARE(spyInsert[0][0].toInt(), 0); - QCOMPARE(spyInsert[0][1].toInt(), 2); + QCOMPARE(spyInsert[0][1].toInt(), 0); + QCOMPARE(spyInsert[0][2].toInt(), 1); QCOMPARE(spyRemove.count(), 1); - QCOMPARE(spyRemove[0][0].toInt(), 0); - QCOMPARE(spyRemove[0][1].toInt(), 2); + QCOMPARE(spyRemove[0][1].toInt(), 0); + QCOMPARE(spyRemove[0][2].toInt(), 1); QCOMPARE(spyCount.count(), 0); @@ -809,11 +816,11 @@ void tst_qquickxmllistmodel::threading() QQmlComponent component(&engine, testFileUrl("roleKeys.qml")); - QListModelInterface *m1 = qobject_cast<QListModelInterface*>(component.create()); + QAbstractItemModel *m1 = qobject_cast<QAbstractItemModel *>(component.create()); QVERIFY(m1 != 0); - QListModelInterface *m2 = qobject_cast<QListModelInterface*>(component.create()); + QAbstractItemModel *m2 = qobject_cast<QAbstractItemModel *>(component.create()); QVERIFY(m2 != 0); - QListModelInterface *m3 = qobject_cast<QListModelInterface*>(component.create()); + QAbstractItemModel *m3 = qobject_cast<QAbstractItemModel *>(component.create()); QVERIFY(m3 != 0); for (int dataCount=0; dataCount<xmlDataCount; dataCount++) { @@ -847,20 +854,29 @@ void tst_qquickxmllistmodel::threading() m3->setProperty("xml",makeItemXmlAndData(data3)); QCoreApplication::processEvents(); - QTRY_VERIFY(m1->count() == dataCount && m2->count() == dataCount && m3->count() == dataCount); + QTRY_VERIFY(m1->rowCount() == dataCount && m2->rowCount() == dataCount && m3->rowCount() == dataCount); for (int i=0; i<dataCount; i++) { - QCOMPARE(m1->data(i, m1->roles()[0]).toString(), QString("A" + QString::number(i))); - QCOMPARE(m1->data(i, m1->roles()[1]).toString(), QString("1" + QString::number(i))); - QCOMPARE(m1->data(i, m1->roles()[2]).toString(), QString("Football")); - - QCOMPARE(m2->data(i, m2->roles()[0]).toString(), QString("B" + QString::number(i))); - QCOMPARE(m2->data(i, m2->roles()[1]).toString(), QString("2" + QString::number(i))); - QCOMPARE(m2->data(i, m2->roles()[2]).toString(), QString("Athletics")); - - QCOMPARE(m3->data(i, m3->roles()[0]).toString(), QString("C" + QString::number(i))); - QCOMPARE(m3->data(i, m3->roles()[1]).toString(), QString("3" + QString::number(i))); - QCOMPARE(m3->data(i, m3->roles()[2]).toString(), QString("Curling")); + QModelIndex index = m1->index(i, 0); + QList<int> roles = m1->roleNames().keys(); + qSort(roles); + QCOMPARE(m1->data(index, roles.at(0)).toString(), QString("A" + QString::number(i))); + QCOMPARE(m1->data(index, roles.at(1)).toString(), QString("1" + QString::number(i))); + QCOMPARE(m1->data(index, roles.at(2)).toString(), QString("Football")); + + index = m2->index(i, 0); + roles = m2->roleNames().keys(); + qSort(roles); + QCOMPARE(m2->data(index, roles.at(0)).toString(), QString("B" + QString::number(i))); + QCOMPARE(m2->data(index, roles.at(1)).toString(), QString("2" + QString::number(i))); + QCOMPARE(m2->data(index, roles.at(2)).toString(), QString("Athletics")); + + index = m3->index(i, 0); + roles = m3->roleNames().keys(); + qSort(roles); + QCOMPARE(m3->data(index, roles.at(0)).toString(), QString("C" + QString::number(i))); + QCOMPARE(m3->data(index, roles.at(1)).toString(), QString("3" + QString::number(i))); + QCOMPARE(m3->data(index, roles.at(2)).toString(), QString("Curling")); } } @@ -881,9 +897,9 @@ void tst_qquickxmllistmodel::threading_data() void tst_qquickxmllistmodel::propertyChanges() { QQmlComponent component(&engine, testFileUrl("propertychanges.qml")); - QListModelInterface *model = qobject_cast<QListModelInterface*>(component.create()); + QAbstractItemModel *model = qobject_cast<QAbstractItemModel*>(component.create()); QVERIFY(model != 0); - QTRY_COMPARE(model->count(), 9); + QTRY_COMPARE(model->rowCount(), 9); QObject *role = model->findChild<QObject*>("role"); QVERIFY(role); @@ -927,7 +943,7 @@ void tst_qquickxmllistmodel::propertyChanges() QCOMPARE(model->property("query").toString(), QString("/Pets")); QCOMPARE(model->property("namespaceDeclarations").toString(), QString("declare namespace media=\"http://search.yahoo.com/mrss/\";")); - QTRY_VERIFY(model->count() == 1); + QTRY_VERIFY(model->rowCount() == 1); QCOMPARE(sourceSpy.count(),1); QCOMPARE(xmlSpy.count(),1); @@ -944,7 +960,7 @@ void tst_qquickxmllistmodel::propertyChanges() QCOMPARE(modelQuerySpy.count(),1); QCOMPARE(namespaceDeclarationsSpy.count(),1); - QTRY_VERIFY(model->count() == 1); + QTRY_VERIFY(model->rowCount() == 1); delete model; } @@ -952,7 +968,7 @@ void tst_qquickxmllistmodel::roleCrash() { // don't crash QQmlComponent component(&engine, testFileUrl("roleCrash.qml")); - QListModelInterface *model = qobject_cast<QListModelInterface*>(component.create()); + QAbstractItemModel *model = qobject_cast<QAbstractItemModel *>(component.create()); QVERIFY(model != 0); delete model; } diff --git a/tests/auto/quick/shared/viewtestutil.cpp b/tests/auto/quick/shared/viewtestutil.cpp index f68ca1fd33..63da97b4f8 100644 --- a/tests/auto/quick/shared/viewtestutil.cpp +++ b/tests/auto/quick/shared/viewtestutil.cpp @@ -141,148 +141,6 @@ QList<int> QQuickViewTestUtil::adjustIndexesForRemoveDisplaced(const QList<int> return result; } - -QQuickViewTestUtil::QmlListModel::QmlListModel(QObject *parent) - : QListModelInterface(parent) -{ -} - -QQuickViewTestUtil::QmlListModel::~QmlListModel() -{ -} - -QString QQuickViewTestUtil::QmlListModel::name(int index) const -{ - return list.at(index).first; -} - -QString QQuickViewTestUtil::QmlListModel::number(int index) const -{ - return list.at(index).second; -} - -int QQuickViewTestUtil::QmlListModel::count() const -{ - return list.count(); -} - -QList<int> QQuickViewTestUtil::QmlListModel::roles() const -{ - return QList<int>() << Name << Number; -} - -QString QQuickViewTestUtil::QmlListModel::toString(int role) const -{ - switch (role) { - case Name: - return "name"; - case Number: - return "number"; - default: - return ""; - } -} - -QVariant QQuickViewTestUtil::QmlListModel::data(int index, int role) const -{ - if (role==0) - return list.at(index).first; - if (role==1) - return list.at(index).second; - return QVariant(); -} - -QHash<int, QVariant> QQuickViewTestUtil::QmlListModel::data(int index, const QList<int> &roles) const -{ - QHash<int,QVariant> returnHash; - - for (int i = 0; i < roles.size(); ++i) { - int role = roles.at(i); - QVariant info; - switch (role) { - case Name: - info = list.at(index).first; - break; - case Number: - info = list.at(index).second; - break; - default: - break; - } - returnHash.insert(role, info); - } - return returnHash; -} - -void QQuickViewTestUtil::QmlListModel::addItem(const QString &name, const QString &number) -{ - list.append(QPair<QString,QString>(name, number)); - emit itemsInserted(list.count()-1, 1); -} - -void QQuickViewTestUtil::QmlListModel::insertItem(int index, const QString &name, const QString &number) -{ - list.insert(index, QPair<QString,QString>(name, number)); - emit itemsInserted(index, 1); -} - -void QQuickViewTestUtil::QmlListModel::insertItems(int index, const QList<QPair<QString, QString> > &items) -{ - for (int i=0; i<items.count(); i++) - list.insert(index + i, QPair<QString,QString>(items[i].first, items[i].second)); - emit itemsInserted(index, items.count()); -} - -void QQuickViewTestUtil::QmlListModel::removeItem(int index) -{ - list.removeAt(index); - emit itemsRemoved(index, 1); -} - -void QQuickViewTestUtil::QmlListModel::removeItems(int index, int count) -{ - int c = count; - while (c--) - list.removeAt(index); - emit itemsRemoved(index, count); -} - -void QQuickViewTestUtil::QmlListModel::moveItem(int from, int to) -{ - list.move(from, to); - emit itemsMoved(from, to, 1); -} - -void QQuickViewTestUtil::QmlListModel::moveItems(int from, int to, int count) -{ - qquickmodelviewstestutil_move(from, to, count, &list); - emit itemsMoved(from, to, count); -} - -void QQuickViewTestUtil::QmlListModel::modifyItem(int index, const QString &name, const QString &number) -{ - list[index] = QPair<QString,QString>(name, number); - emit itemsChanged(index, 1, roles()); -} - -void QQuickViewTestUtil::QmlListModel::clear() { - int count = list.count(); - list.clear(); - emit itemsRemoved(0, count); -} - -void QQuickViewTestUtil::QmlListModel::matchAgainst(const QList<QPair<QString, QString> > &other, const QString &error1, const QString &error2) { - for (int i=0; i<other.count(); i++) { - QVERIFY2(list.contains(other[i]), - QTest::toString(other[i].first + " " + other[i].second + " " + error1)); - } - for (int i=0; i<list.count(); i++) { - QVERIFY2(other.contains(list[i]), - QTest::toString(list[i].first + " " + list[i].second + " " + error2)); - } -} - - QQuickViewTestUtil::QaimModel::QaimModel(QObject *parent) : QAbstractListModel(parent) { @@ -392,9 +250,11 @@ void QQuickViewTestUtil::QaimModel::modifyItem(int idx, const QString &name, con void QQuickViewTestUtil::QaimModel::clear() { int count = list.count(); - emit beginRemoveRows(QModelIndex(), 0, count-1); - list.clear(); - emit endRemoveRows(); + if (count > 0) { + beginRemoveRows(QModelIndex(), 0, count-1); + list.clear(); + endRemoveRows(); + } } void QQuickViewTestUtil::QaimModel::reset() @@ -474,16 +334,6 @@ int QQuickViewTestUtil::ListRange::count() const return indexes.count(); } -QList<QPair<QString,QString> > QQuickViewTestUtil::ListRange::getModelDataValues(const QmlListModel &model) -{ - QList<QPair<QString,QString> > data; - if (!valid) - return data; - for (int i=0; i<indexes.count(); i++) - data.append(qMakePair(model.name(indexes[i]), model.number(indexes[i]))); - return data; -} - QList<QPair<QString,QString> > QQuickViewTestUtil::ListRange::getModelDataValues(const QaimModel &model) { QList<QPair<QString,QString> > data; diff --git a/tests/auto/quick/shared/viewtestutil.h b/tests/auto/quick/shared/viewtestutil.h index 3108030406..771be0a890 100644 --- a/tests/auto/quick/shared/viewtestutil.h +++ b/tests/auto/quick/shared/viewtestutil.h @@ -44,7 +44,6 @@ #include <QtQuick/QQuickItem> #include <QtQml/QQmlExpression> -#include <QtQml/private/qlistmodelinterface_p.h> #include <QtCore/QAbstractListModel> QT_FORWARD_DECLARE_CLASS(QQuickView) @@ -74,46 +73,6 @@ namespace QQuickViewTestUtil static ListChange polish() { ListChange c = { Polish, -1, -1, -1, 0.0 }; return c; } }; - class QmlListModel : public QListModelInterface - { - Q_OBJECT - public: - QmlListModel(QObject *parent = 0); - ~QmlListModel(); - - enum Roles { Name, Number }; - - QString name(int index) const; - QString number(int index) const; - - int count() const; - - QList<int> roles() const; - QString toString(int role) const; - - QVariant data(int index, int role) const; - QHash<int, QVariant> data(int index, const QList<int> &roles) const; - - Q_INVOKABLE void addItem(const QString &name, const QString &number); - void insertItem(int index, const QString &name, const QString &number); - void insertItems(int index, const QList<QPair<QString, QString> > &items); - - Q_INVOKABLE void removeItem(int index); - Q_INVOKABLE void removeItems(int index, int count); - - void moveItem(int from, int to); - void moveItems(int from, int to, int count); - - void modifyItem(int index, const QString &name, const QString &number); - - void clear(); - - void matchAgainst(const QList<QPair<QString, QString> > &other, const QString &error1, const QString &error2); - - private: - QList<QPair<QString,QString> > list; - }; - class QaimModel : public QAbstractListModel { Q_OBJECT @@ -134,7 +93,7 @@ namespace QQuickViewTestUtil void insertItem(int index, const QString &name, const QString &number); void insertItems(int index, const QList<QPair<QString, QString> > &items); - void removeItem(int index); + Q_INVOKABLE void removeItem(int index); void removeItems(int index, int count); void moveItem(int from, int to); @@ -168,7 +127,6 @@ namespace QQuickViewTestUtil bool isValid() const; int count() const; - QList<QPair<QString,QString> > getModelDataValues(const QmlListModel &model); QList<QPair<QString,QString> > getModelDataValues(const QaimModel &model); QList<int> indexes; |