aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/qtquick2
diff options
context:
space:
mode:
authorAndrew den Exter <andrew.den-exter@nokia.com>2011-12-09 12:55:32 +1000
committerQt by Nokia <qt-info@nokia.com>2011-12-20 07:33:37 +0100
commitac50bb1b85ccd3e08053e1284be50847d32688dc (patch)
treebdb285fec33251d6e715aabbfe3e7eaf6ae44d03 /tests/auto/qtquick2
parentf3c7d8c357d8c119287cf8d520e48098170b47c5 (diff)
Ensure items in ListView and GridViews viewport are visible.
Unrequested items and items in the cache buffer are hidden by the views. Make these items visible again if they enter the viewport due to a relayout. Change-Id: I574d1513e88c31c3c01a4a20ac77c21111279d3e Reviewed-by: Bea Lam <bea.lam@nokia.com>
Diffstat (limited to 'tests/auto/qtquick2')
-rw-r--r--tests/auto/qtquick2/qquickgridview/data/unrequestedItems.qml67
-rw-r--r--tests/auto/qtquick2/qquickgridview/tst_qquickgridview.cpp169
-rw-r--r--tests/auto/qtquick2/qquicklistview/data/unrequestedItems.qml63
-rw-r--r--tests/auto/qtquick2/qquicklistview/tst_qquicklistview.cpp178
4 files changed, 473 insertions, 4 deletions
diff --git a/tests/auto/qtquick2/qquickgridview/data/unrequestedItems.qml b/tests/auto/qtquick2/qquickgridview/data/unrequestedItems.qml
new file mode 100644
index 0000000000..ffd52d283e
--- /dev/null
+++ b/tests/auto/qtquick2/qquickgridview/data/unrequestedItems.qml
@@ -0,0 +1,67 @@
+import QtQuick 2.0
+
+Item {
+ width: 240
+ height: 320
+
+ Component {
+ id: myDelegate
+
+ Package {
+ Rectangle {
+ id: leftWrapper
+ objectName: "wrapper"
+ Package.name: "left"
+ height: 80
+ width: 60
+ Text {
+ text: index
+ }
+ color: ListView.isCurrentItem ? "lightsteelblue" : "white"
+ }
+ Rectangle {
+ id: rightWrapper
+ objectName: "wrapper"
+ Package.name: "right"
+ height: 80
+ width: 60
+ Text {
+ text: index
+ }
+ color: ListView.isCurrentItem ? "lightsteelblue" : "white"
+ }
+ }
+
+ }
+
+ VisualDataModel {
+ id: visualModel
+
+ delegate: myDelegate
+ model: testModel
+ }
+
+ GridView {
+ id: leftList
+ objectName: "leftGrid"
+ anchors {
+ left: parent.left; top: parent.top;
+ right: parent.horizontalCenter; bottom: parent.bottom
+ }
+ model: visualModel.parts.left
+ cellWidth: 60
+ cellHeight: 80
+ }
+
+ GridView {
+ id: rightList
+ objectName: "rightGrid"
+ anchors {
+ left: parent.horizontalCenter; top: parent.top;
+ right: parent.right; bottom: parent.bottom
+ }
+ model: visualModel.parts.right
+ cellWidth: 60
+ cellHeight: 80
+ }
+}
diff --git a/tests/auto/qtquick2/qquickgridview/tst_qquickgridview.cpp b/tests/auto/qtquick2/qquickgridview/tst_qquickgridview.cpp
index 9ceafffbe9..5a1f482f49 100644
--- a/tests/auto/qtquick2/qquickgridview/tst_qquickgridview.cpp
+++ b/tests/auto/qtquick2/qquickgridview/tst_qquickgridview.cpp
@@ -120,6 +120,7 @@ private slots:
void unaligned();
void cacheBuffer();
void asynchronous();
+ void unrequestedVisibility();
private:
QQuickView *createView();
@@ -3747,6 +3748,174 @@ void tst_QQuickGridView::asynchronous()
delete canvas;
}
+void tst_QQuickGridView::unrequestedVisibility()
+{
+ TestModel model;
+ for (int i = 0; i < 30; i++)
+ model.addItem("Item" + QString::number(i), QString::number(i));
+
+ QQuickView *canvas = new QQuickView(0);
+ canvas->setGeometry(0,0,240,320);
+
+ QDeclarativeContext *ctxt = canvas->rootContext();
+ ctxt->setContextProperty("testModel", &model);
+ ctxt->setContextProperty("testWrap", QVariant(false));
+
+ QString filename(TESTDATA("unrequestedItems.qml"));
+ canvas->setSource(QUrl::fromLocalFile(filename));
+
+ canvas->show();
+
+ qApp->processEvents();
+
+ QQuickGridView *leftview = findItem<QQuickGridView>(canvas->rootObject(), "leftGrid");
+ QTRY_VERIFY(leftview != 0);
+
+ QQuickGridView *rightview = findItem<QQuickGridView>(canvas->rootObject(), "rightGrid");
+ QTRY_VERIFY(rightview != 0);
+
+ QQuickItem *leftContent = leftview->contentItem();
+ QTRY_VERIFY(leftContent != 0);
+
+ QQuickItem *rightContent = rightview->contentItem();
+ QTRY_VERIFY(rightContent != 0);
+
+ rightview->setCurrentIndex(12);
+
+ QTRY_COMPARE(leftview->contentY(), 0.0);
+ QTRY_COMPARE(rightview->contentY(), 240.0);
+
+ QQuickItem *item;
+
+ QVERIFY(item = findItem<QQuickItem>(leftContent, "wrapper", 1));
+ QCOMPARE(item->isVisible(), true);
+ QVERIFY(item = findItem<QQuickItem>(rightContent, "wrapper", 1));
+ QCOMPARE(item->isVisible(), false);
+
+ QVERIFY(item = findItem<QQuickItem>(leftContent, "wrapper", 11));
+ QCOMPARE(item->isVisible(), false);
+ QVERIFY(item = findItem<QQuickItem>(rightContent, "wrapper", 11));
+ QCOMPARE(item->isVisible(), true);
+
+ QVERIFY(item = findItem<QQuickItem>(leftContent, "wrapper", 9));
+ QCOMPARE(item->isVisible(), true);
+ QVERIFY(item = findItem<QQuickItem>(leftContent, "wrapper", 10));
+ QCOMPARE(item->isVisible(), false);
+ QVERIFY(item = findItem<QQuickItem>(rightContent, "wrapper", 3));
+ QCOMPARE(item->isVisible(), false);
+ QVERIFY(item = findItem<QQuickItem>(rightContent, "wrapper", 4));
+ QCOMPARE(item->isVisible(), true);
+
+ rightview->setCurrentIndex(0);
+
+ QTRY_COMPARE(leftview->contentY(), 0.0);
+ QTRY_COMPARE(rightview->contentY(), 0.0);
+
+ QVERIFY(item = findItem<QQuickItem>(leftContent, "wrapper", 1));
+ QCOMPARE(item->isVisible(), true);
+ QVERIFY(item = findItem<QQuickItem>(rightContent, "wrapper", 1));
+ QTRY_COMPARE(item->isVisible(), true);
+
+ QVERIFY(!findItem<QQuickItem>(leftContent, "wrapper", 11));
+ QVERIFY(!findItem<QQuickItem>(rightContent, "wrapper", 11));
+
+ leftview->setCurrentIndex(12);
+
+ QTRY_COMPARE(leftview->contentY(), 240.0);
+ QTRY_COMPARE(rightview->contentY(), 0.0);
+
+ QVERIFY(item = findItem<QQuickItem>(leftContent, "wrapper", 1));
+ QTRY_COMPARE(item->isVisible(), false);
+ QVERIFY(item = findItem<QQuickItem>(rightContent, "wrapper", 1));
+ QCOMPARE(item->isVisible(), true);
+
+ QVERIFY(item = findItem<QQuickItem>(leftContent, "wrapper", 11));
+ QCOMPARE(item->isVisible(), true);
+ QVERIFY(item = findItem<QQuickItem>(rightContent, "wrapper", 11));
+ QCOMPARE(item->isVisible(), false);
+
+ QVERIFY(item = findItem<QQuickItem>(leftContent, "wrapper", 3));
+ QCOMPARE(item->isVisible(), false);
+ QVERIFY(item = findItem<QQuickItem>(leftContent, "wrapper", 4));
+ QCOMPARE(item->isVisible(), true);
+ QVERIFY(item = findItem<QQuickItem>(rightContent, "wrapper", 9));
+ QCOMPARE(item->isVisible(), true);
+ QVERIFY(item = findItem<QQuickItem>(rightContent, "wrapper", 10));
+ QCOMPARE(item->isVisible(), false);
+
+ model.moveItems(19, 1, 1);
+ QTRY_COMPARE(QQuickItemPrivate::get(leftview)->polishScheduled, false);
+
+ QTRY_VERIFY(item = findItem<QQuickItem>(leftContent, "wrapper", 1));
+ QCOMPARE(item->isVisible(), false);
+ QVERIFY(item = findItem<QQuickItem>(rightContent, "wrapper", 1));
+ QCOMPARE(item->isVisible(), true);
+
+ QVERIFY(item = findItem<QQuickItem>(leftContent, "wrapper", 11));
+ QCOMPARE(item->isVisible(), true);
+ QVERIFY(item = findItem<QQuickItem>(rightContent, "wrapper", 11));
+ QCOMPARE(item->isVisible(), false);
+
+ QVERIFY(item = findItem<QQuickItem>(leftContent, "wrapper", 3));
+ QCOMPARE(item->isVisible(), false);
+ QVERIFY(item = findItem<QQuickItem>(leftContent, "wrapper", 4));
+ QCOMPARE(item->isVisible(), true);
+ QVERIFY(item = findItem<QQuickItem>(rightContent, "wrapper", 9));
+ QCOMPARE(item->isVisible(), true);
+ QVERIFY(item = findItem<QQuickItem>(rightContent, "wrapper", 10));
+ QCOMPARE(item->isVisible(), false);
+
+ model.moveItems(3, 4, 1);
+ QTRY_COMPARE(QQuickItemPrivate::get(leftview)->polishScheduled, false);
+
+ QVERIFY(item = findItem<QQuickItem>(leftContent, "wrapper", 1));
+ QCOMPARE(item->isVisible(), false);
+ QVERIFY(item = findItem<QQuickItem>(leftContent, "wrapper", 2));
+ QCOMPARE(item->isVisible(), true);
+ QVERIFY(item = findItem<QQuickItem>(rightContent, "wrapper", 9));
+ QCOMPARE(item->isVisible(), true);
+ QVERIFY(item = findItem<QQuickItem>(rightContent, "wrapper", 10));
+ QCOMPARE(item->isVisible(), false);
+
+ model.moveItems(4, 5, 1);
+ QTRY_COMPARE(QQuickItemPrivate::get(leftview)->polishScheduled, false);
+
+ QVERIFY(item = findItem<QQuickItem>(leftContent, "wrapper", 1));
+ QCOMPARE(item->isVisible(), false);
+ QVERIFY(item = findItem<QQuickItem>(leftContent, "wrapper", 2));
+ QCOMPARE(item->isVisible(), true);
+ QVERIFY(item = findItem<QQuickItem>(rightContent, "wrapper", 9));
+ QCOMPARE(item->isVisible(), true);
+ QVERIFY(item = findItem<QQuickItem>(rightContent, "wrapper", 10));
+ QCOMPARE(item->isVisible(), false);
+
+ model.moveItems(9, 10, 1);
+ QTRY_COMPARE(QQuickItemPrivate::get(leftview)->polishScheduled, false);
+
+ QVERIFY(item = findItem<QQuickItem>(leftContent, "wrapper", 1));
+ QCOMPARE(item->isVisible(), false);
+ QVERIFY(item = findItem<QQuickItem>(leftContent, "wrapper", 2));
+ QCOMPARE(item->isVisible(), true);
+ QVERIFY(item = findItem<QQuickItem>(rightContent, "wrapper", 9));
+ QCOMPARE(item->isVisible(), true);
+ QVERIFY(item = findItem<QQuickItem>(rightContent, "wrapper", 10));
+ QCOMPARE(item->isVisible(), false);
+
+ model.moveItems(10, 9, 1);
+ QTRY_COMPARE(QQuickItemPrivate::get(leftview)->polishScheduled, false);
+
+ QVERIFY(item = findItem<QQuickItem>(leftContent, "wrapper", 1));
+ QCOMPARE(item->isVisible(), false);
+ QVERIFY(item = findItem<QQuickItem>(leftContent, "wrapper", 2));
+ QCOMPARE(item->isVisible(), true);
+ QVERIFY(item = findItem<QQuickItem>(rightContent, "wrapper", 9));
+ QCOMPARE(item->isVisible(), true);
+ QVERIFY(item = findItem<QQuickItem>(rightContent, "wrapper", 10));
+ QCOMPARE(item->isVisible(), false);
+
+ delete canvas;
+}
+
/*
Find an item with the specified objectName. If index is supplied then the
item must also evaluate the {index} expression equal to index
diff --git a/tests/auto/qtquick2/qquicklistview/data/unrequestedItems.qml b/tests/auto/qtquick2/qquicklistview/data/unrequestedItems.qml
new file mode 100644
index 0000000000..682f3833d1
--- /dev/null
+++ b/tests/auto/qtquick2/qquicklistview/data/unrequestedItems.qml
@@ -0,0 +1,63 @@
+import QtQuick 2.0
+
+Item {
+ width: 240
+ height: 320
+
+ Component {
+ id: myDelegate
+
+ Package {
+ Rectangle {
+ id: leftWrapper
+ objectName: "wrapper"
+ Package.name: "left"
+ height: 20
+ width: 120
+ Text {
+ text: index
+ }
+ color: ListView.isCurrentItem ? "lightsteelblue" : "white"
+ }
+ Rectangle {
+ id: rightWrapper
+ objectName: "wrapper"
+ Package.name: "right"
+ height: 20
+ width: 120
+ Text {
+ text: index
+ }
+ color: ListView.isCurrentItem ? "lightsteelblue" : "white"
+ }
+ }
+
+ }
+
+ VisualDataModel {
+ id: visualModel
+
+ delegate: myDelegate
+ model: testModel
+ }
+
+ ListView {
+ id: leftList
+ objectName: "leftList"
+ anchors {
+ left: parent.left; top: parent.top;
+ right: parent.horizontalCenter; bottom: parent.bottom
+ }
+ model: visualModel.parts.left
+ }
+
+ ListView {
+ id: rightList
+ objectName: "rightList"
+ anchors {
+ left: parent.horizontalCenter; top: parent.top;
+ right: parent.right; bottom: parent.bottom
+ }
+ model: visualModel.parts.right
+ }
+}
diff --git a/tests/auto/qtquick2/qquicklistview/tst_qquicklistview.cpp b/tests/auto/qtquick2/qquicklistview/tst_qquicklistview.cpp
index cfd3435919..c6cd692045 100644
--- a/tests/auto/qtquick2/qquicklistview/tst_qquicklistview.cpp
+++ b/tests/auto/qtquick2/qquicklistview/tst_qquicklistview.cpp
@@ -160,6 +160,7 @@ private slots:
void QTBUG_21742();
void asynchronous();
+ void unrequestedVisibility();
private:
template <class T> void items(const QUrl &source, bool forceLayout);
@@ -176,7 +177,7 @@ private:
template<typename T>
T *findItem(QQuickItem *parent, const QString &id, int index=-1);
template<typename T>
- QList<T*> findItems(QQuickItem *parent, const QString &objectName);
+ QList<T*> findItems(QQuickItem *parent, const QString &objectName, bool visibleOnly = true);
void dumpTree(QQuickItem *parent, int depth = 0);
void inserted_more_data();
@@ -2849,7 +2850,7 @@ void tst_QQuickListView::QTBUG_9791()
qApp->processEvents();
// Confirm items positioned correctly
- int itemCount = findItems<QQuickItem>(contentItem, "wrapper").count();
+ int itemCount = findItems<QQuickItem>(contentItem, "wrapper", false).count();
QCOMPARE(itemCount, 3);
for (int i = 0; i < itemCount; ++i) {
@@ -4483,6 +4484,175 @@ void tst_QQuickListView::snapOneItem()
delete canvas;
}
+void tst_QQuickListView::unrequestedVisibility()
+{
+ TestModel model;
+ for (int i = 0; i < 30; i++)
+ model.addItem("Item" + QString::number(i), QString::number(i));
+
+ QQuickView *canvas = new QQuickView(0);
+ canvas->setGeometry(0,0,240,320);
+
+ QDeclarativeContext *ctxt = canvas->rootContext();
+ ctxt->setContextProperty("testModel", &model);
+ ctxt->setContextProperty("testWrap", QVariant(false));
+
+ QString filename(TESTDATA("unrequestedItems.qml"));
+ canvas->setSource(QUrl::fromLocalFile(filename));
+
+ canvas->show();
+
+ qApp->processEvents();
+
+
+ QQuickListView *leftview = findItem<QQuickListView>(canvas->rootObject(), "leftList");
+ QTRY_VERIFY(leftview != 0);
+
+ QQuickListView *rightview = findItem<QQuickListView>(canvas->rootObject(), "rightList");
+ QTRY_VERIFY(rightview != 0);
+
+ QQuickItem *leftContent = leftview->contentItem();
+ QTRY_VERIFY(leftContent != 0);
+
+ QQuickItem *rightContent = rightview->contentItem();
+ QTRY_VERIFY(rightContent != 0);
+
+ rightview->setCurrentIndex(20);
+
+ QTRY_COMPARE(leftview->contentY(), 0.0);
+ QTRY_COMPARE(rightview->contentY(), 100.0);
+
+ QQuickItem *item;
+
+ QVERIFY(item = findItem<QQuickItem>(leftContent, "wrapper", 1));
+ QCOMPARE(item->isVisible(), true);
+ QVERIFY(item = findItem<QQuickItem>(rightContent, "wrapper", 1));
+ QCOMPARE(item->isVisible(), false);
+
+ QVERIFY(item = findItem<QQuickItem>(leftContent, "wrapper", 19));
+ QCOMPARE(item->isVisible(), false);
+ QVERIFY(item = findItem<QQuickItem>(rightContent, "wrapper", 19));
+ QCOMPARE(item->isVisible(), true);
+
+ QVERIFY(item = findItem<QQuickItem>(leftContent, "wrapper", 16));
+ QCOMPARE(item->isVisible(), true);
+ QVERIFY(item = findItem<QQuickItem>(leftContent, "wrapper", 17));
+ QCOMPARE(item->isVisible(), false);
+ QVERIFY(item = findItem<QQuickItem>(rightContent, "wrapper", 3));
+ QCOMPARE(item->isVisible(), false);
+ QVERIFY(item = findItem<QQuickItem>(rightContent, "wrapper", 4));
+ QCOMPARE(item->isVisible(), true);
+
+ rightview->setCurrentIndex(0);
+
+ QTRY_COMPARE(leftview->contentY(), 0.0);
+ QTRY_COMPARE(rightview->contentY(), 0.0);
+
+ QVERIFY(item = findItem<QQuickItem>(leftContent, "wrapper", 1));
+ QCOMPARE(item->isVisible(), true);
+ QVERIFY(item = findItem<QQuickItem>(rightContent, "wrapper", 1));
+ QTRY_COMPARE(item->isVisible(), true);
+
+ QVERIFY(!findItem<QQuickItem>(leftContent, "wrapper", 19));
+ QVERIFY(!findItem<QQuickItem>(rightContent, "wrapper", 19));
+
+ leftview->setCurrentIndex(20);
+
+ QTRY_COMPARE(leftview->contentY(), 100.0);
+ QTRY_COMPARE(rightview->contentY(), 0.0);
+
+ QVERIFY(item = findItem<QQuickItem>(leftContent, "wrapper", 1));
+ QTRY_COMPARE(item->isVisible(), false);
+ QVERIFY(item = findItem<QQuickItem>(rightContent, "wrapper", 1));
+ QCOMPARE(item->isVisible(), true);
+
+ QVERIFY(item = findItem<QQuickItem>(leftContent, "wrapper", 19));
+ QCOMPARE(item->isVisible(), true);
+ QVERIFY(item = findItem<QQuickItem>(rightContent, "wrapper", 19));
+ QCOMPARE(item->isVisible(), false);
+
+ QVERIFY(item = findItem<QQuickItem>(leftContent, "wrapper", 3));
+ QCOMPARE(item->isVisible(), false);
+ QVERIFY(item = findItem<QQuickItem>(leftContent, "wrapper", 4));
+ QCOMPARE(item->isVisible(), true);
+ QVERIFY(item = findItem<QQuickItem>(rightContent, "wrapper", 16));
+ QCOMPARE(item->isVisible(), true);
+ QVERIFY(item = findItem<QQuickItem>(rightContent, "wrapper", 17));
+ QCOMPARE(item->isVisible(), false);
+
+ model.moveItems(19, 1, 1);
+ QTRY_COMPARE(QQuickItemPrivate::get(leftview)->polishScheduled, false);
+
+ QTRY_VERIFY(item = findItem<QQuickItem>(leftContent, "wrapper", 1));
+ QCOMPARE(item->isVisible(), false);
+ QVERIFY(item = findItem<QQuickItem>(rightContent, "wrapper", 1));
+ QCOMPARE(item->isVisible(), true);
+
+ QVERIFY(item = findItem<QQuickItem>(leftContent, "wrapper", 19));
+ QCOMPARE(item->isVisible(), true);
+ QVERIFY(item = findItem<QQuickItem>(rightContent, "wrapper", 19));
+ QCOMPARE(item->isVisible(), false);
+
+ QVERIFY(item = findItem<QQuickItem>(leftContent, "wrapper", 4));
+ QCOMPARE(item->isVisible(), false);
+ QVERIFY(item = findItem<QQuickItem>(leftContent, "wrapper", 5));
+ QCOMPARE(item->isVisible(), true);
+ QVERIFY(item = findItem<QQuickItem>(rightContent, "wrapper", 16));
+ QCOMPARE(item->isVisible(), true);
+ QVERIFY(item = findItem<QQuickItem>(rightContent, "wrapper", 17));
+ QCOMPARE(item->isVisible(), false);
+
+ model.moveItems(3, 4, 1);
+ QTRY_COMPARE(QQuickItemPrivate::get(leftview)->polishScheduled, false);
+
+ QVERIFY(item = findItem<QQuickItem>(leftContent, "wrapper", 4));
+ QCOMPARE(item->isVisible(), false);
+ QVERIFY(item = findItem<QQuickItem>(leftContent, "wrapper", 5));
+ QCOMPARE(item->isVisible(), true);
+ QVERIFY(item = findItem<QQuickItem>(rightContent, "wrapper", 16));
+ QCOMPARE(item->isVisible(), true);
+ QVERIFY(item = findItem<QQuickItem>(rightContent, "wrapper", 17));
+ QCOMPARE(item->isVisible(), false);
+
+ model.moveItems(4, 3, 1);
+ QTRY_COMPARE(QQuickItemPrivate::get(leftview)->polishScheduled, false);
+
+ QVERIFY(item = findItem<QQuickItem>(leftContent, "wrapper", 4));
+ QCOMPARE(item->isVisible(), false);
+ QVERIFY(item = findItem<QQuickItem>(leftContent, "wrapper", 5));
+ QCOMPARE(item->isVisible(), true);
+ QVERIFY(item = findItem<QQuickItem>(rightContent, "wrapper", 16));
+ QCOMPARE(item->isVisible(), true);
+ QVERIFY(item = findItem<QQuickItem>(rightContent, "wrapper", 17));
+ QCOMPARE(item->isVisible(), false);
+
+ model.moveItems(16, 17, 1);
+ QTRY_COMPARE(QQuickItemPrivate::get(leftview)->polishScheduled, false);
+
+ QVERIFY(item = findItem<QQuickItem>(leftContent, "wrapper", 4));
+ QCOMPARE(item->isVisible(), false);
+ QVERIFY(item = findItem<QQuickItem>(leftContent, "wrapper", 5));
+ QCOMPARE(item->isVisible(), true);
+ QVERIFY(item = findItem<QQuickItem>(rightContent, "wrapper", 16));
+ QCOMPARE(item->isVisible(), true);
+ QVERIFY(item = findItem<QQuickItem>(rightContent, "wrapper", 17));
+ QCOMPARE(item->isVisible(), false);
+
+ model.moveItems(17, 16, 1);
+ QTRY_COMPARE(QQuickItemPrivate::get(leftview)->polishScheduled, false);
+
+ QVERIFY(item = findItem<QQuickItem>(leftContent, "wrapper", 5));
+ QCOMPARE(item->isVisible(), false);
+ QVERIFY(item = findItem<QQuickItem>(leftContent, "wrapper", 6));
+ QCOMPARE(item->isVisible(), true);
+ QVERIFY(item = findItem<QQuickItem>(rightContent, "wrapper", 16));
+ QCOMPARE(item->isVisible(), true);
+ QVERIFY(item = findItem<QQuickItem>(rightContent, "wrapper", 17));
+ QCOMPARE(item->isVisible(), false);
+
+ delete canvas;
+}
+
QQuickItem *tst_QQuickListView::findVisibleChild(QQuickItem *parent, const QString &objectName)
{
QQuickItem *item = 0;
@@ -4527,14 +4697,14 @@ T *tst_QQuickListView::findItem(QQuickItem *parent, const QString &objectName, i
}
template<typename T>
-QList<T*> tst_QQuickListView::findItems(QQuickItem *parent, const QString &objectName)
+QList<T*> tst_QQuickListView::findItems(QQuickItem *parent, const QString &objectName, bool visibleOnly)
{
QList<T*> items;
const QMetaObject &mo = T::staticMetaObject;
//qDebug() << parent->childItems().count() << "children";
for (int i = 0; i < parent->childItems().count(); ++i) {
QQuickItem *item = qobject_cast<QQuickItem*>(parent->childItems().at(i));
- if (!item || !item->isVisible())
+ if (!item || (visibleOnly && !item->isVisible()))
continue;
//qDebug() << "try" << item;
if (mo.cast(item) && (objectName.isEmpty() || item->objectName() == objectName))