diff options
author | Andrew den Exter <andrew.den-exter@nokia.com> | 2011-12-01 14:01:13 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-12-23 07:23:39 +0100 |
commit | 347f84e5aca9423536cb0cd7a2eafaf836a72212 (patch) | |
tree | cdb68529b37190be7f477d7775f8011d39080b36 /tests | |
parent | 932a195dbaae92ce87b98beca29a25c9b8d6cf5b (diff) |
Minimize the number of objects created per item in VisualDataModel.
Derive from QDeclarativeContext and reference count the context object
instead of parenting it to the context. Combined with a weak
persistent v8 handle the allows the context object to be returned by
javascript accessors instead of creating a new instance for every use.
In addition to the efficiency advantages of creating fewer objects,
routing all data access through a single object means that object can
also persist data instead of just acting as a proxy.
Change-Id: I107dc8c901f16f2a4b420ff1cbffa7a6be27de89
Reviewed-by: Martin Jones <martin.jones@nokia.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/declarative/qdeclarativelistcompositor/tst_qdeclarativelistcompositor.cpp | 10 | ||||
-rw-r--r-- | tests/auto/qtquick2/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp | 12 |
2 files changed, 9 insertions, 13 deletions
diff --git a/tests/auto/declarative/qdeclarativelistcompositor/tst_qdeclarativelistcompositor.cpp b/tests/auto/declarative/qdeclarativelistcompositor/tst_qdeclarativelistcompositor.cpp index 43ae2f6c7e..b3ea4d9ef6 100644 --- a/tests/auto/declarative/qdeclarativelistcompositor/tst_qdeclarativelistcompositor.cpp +++ b/tests/auto/declarative/qdeclarativelistcompositor/tst_qdeclarativelistcompositor.cpp @@ -233,8 +233,6 @@ void tst_qdeclarativelistcompositor::find() void tst_qdeclarativelistcompositor::findInsertPosition_data() { QTest::addColumn<RangeList>("ranges"); - QTest::addColumn<C::Group>("startGroup"); - QTest::addColumn<int>("startIndex"); QTest::addColumn<C::Group>("group"); QTest::addColumn<int>("index"); QTest::addColumn<int>("selectionIndex"); @@ -251,7 +249,6 @@ void tst_qdeclarativelistcompositor::findInsertPosition_data() << Range(a, 0, 1, int(C::PrependFlag | SelectionFlag | C::DefaultFlag | C::CacheFlag)) << Range(a, 1, 1, int(C::AppendFlag | C::PrependFlag | C::CacheFlag)) << Range(0, 0, 1, int(VisibleFlag| C::CacheFlag))) - << C::Cache << 2 << Selection << 0 << 0 << 0 << 0 << 0 << int(C::PrependFlag | SelectionFlag | C::DefaultFlag | C::CacheFlag) << 0; @@ -260,7 +257,6 @@ void tst_qdeclarativelistcompositor::findInsertPosition_data() << Range(a, 0, 1, int(C::PrependFlag | SelectionFlag | C::DefaultFlag | C::CacheFlag)) << Range(a, 1, 1, int(C::AppendFlag | C::PrependFlag | C::CacheFlag)) << Range(0, 0, 1, int(VisibleFlag| C::CacheFlag))) - << C::Cache << 2 << Selection << 1 << 1 << 0 << 1 << 1 << int(C::AppendFlag | C::PrependFlag | C::CacheFlag) << 1; @@ -269,8 +265,6 @@ void tst_qdeclarativelistcompositor::findInsertPosition_data() void tst_qdeclarativelistcompositor::findInsertPosition() { QFETCH(RangeList, ranges); - QFETCH(C::Group, startGroup); - QFETCH(int, startIndex); QFETCH(C::Group, group); QFETCH(int, index); QFETCH(int, cacheIndex); @@ -988,7 +982,7 @@ void tst_qdeclarativelistcompositor::move() QVector<C::Remove> removes; QVector<C::Insert> inserts; - compositor.move(fromGroup, from, toGroup, to, count, &removes, &inserts); + compositor.move(fromGroup, from, toGroup, to, count, fromGroup, &removes, &inserts); QCOMPARE(removes, expectedRemoves); QCOMPARE(inserts, expectedInserts); @@ -1031,7 +1025,7 @@ void tst_qdeclarativelistcompositor::moveFromEnd() compositor.append(a, 0, 1, C::AppendFlag | C::PrependFlag | C::DefaultFlag); // Moving an item anchors it to that position. - compositor.move(C::Default, 0, C::Default, 0, 1); + compositor.move(C::Default, 0, C::Default, 0, 1, C::Default); // The existing item is anchored at 0 so prepending an item to the source will append it here QVector<C::Insert> inserts; diff --git a/tests/auto/qtquick2/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp b/tests/auto/qtquick2/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp index a4db71a527..cec8931dc5 100644 --- a/tests/auto/qtquick2/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp +++ b/tests/auto/qtquick2/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp @@ -80,7 +80,9 @@ class SingleRoleModel : public QAbstractListModel Q_OBJECT public: - SingleRoleModel(const QByteArray &role = "name", QObject * /* parent */ = 0) { + SingleRoleModel(const QByteArray &role = "name", QObject *parent = 0) + : QAbstractListModel(parent) + { QHash<int, QByteArray> roles; roles.insert(Qt::DisplayRole , role); setRoleNames(roles); @@ -904,7 +906,7 @@ void tst_qquickvisualdatamodel::remove() QCOMPARE(listview->count(), 7); QCOMPARE(visualModel->items()->count(), 7); } { - QTest::ignoreMessage(QtWarningMsg, "<Unknown File>: QML VisualDataGroup: remove: index out of range"); + QTest::ignoreMessage(QtWarningMsg, "<Unknown File>: QML VisualDataGroup: remove: invalid count"); evaluate<void>(visualModel, "items.remove(5, 3)"); QCOMPARE(listview->count(), 7); QCOMPARE(visualModel->items()->count(), 7); @@ -1247,7 +1249,7 @@ void tst_qquickvisualdatamodel::groups() QCOMPARE(visibleItems->count(), 9); QCOMPARE(selectedItems->count(), 2); } { - QTest::ignoreMessage(QtWarningMsg, "<Unknown File>: QML VisualDataGroup: addGroups: index out of range"); + QTest::ignoreMessage(QtWarningMsg, "<Unknown File>: QML VisualDataGroup: addGroups: invalid count"); evaluate<void>(visualModel, "items.addGroups(11, 5, \"items\")"); QCOMPARE(listview->count(), 12); QCOMPARE(visualModel->items()->count(), 12); @@ -1275,7 +1277,7 @@ void tst_qquickvisualdatamodel::groups() QCOMPARE(visibleItems->count(), 9); QCOMPARE(selectedItems->count(), 2); } { - QTest::ignoreMessage(QtWarningMsg, "<Unknown File>: QML VisualDataGroup: setGroups: index out of range"); + QTest::ignoreMessage(QtWarningMsg, "<Unknown File>: QML VisualDataGroup: setGroups: invalid count"); evaluate<void>(visualModel, "items.setGroups(11, 5, \"items\")"); QCOMPARE(listview->count(), 12); QCOMPARE(visualModel->items()->count(), 12); @@ -1301,7 +1303,7 @@ void tst_qquickvisualdatamodel::groups() QCOMPARE(visibleItems->count(), 9); QCOMPARE(selectedItems->count(), 2); } { - QTest::ignoreMessage(QtWarningMsg, "<Unknown File>: QML VisualDataGroup: removeGroups: index out of range"); + QTest::ignoreMessage(QtWarningMsg, "<Unknown File>: QML VisualDataGroup: removeGroups: invalid count"); evaluate<void>(visualModel, "items.removeGroups(11, 5, \"items\")"); QCOMPARE(listview->count(), 12); QCOMPARE(visualModel->items()->count(), 12); |