--- a/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp Tue Jul 06 15:10:48 2010 +0300
+++ b/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp Wed Aug 18 10:37:55 2010 +0300
@@ -52,6 +52,11 @@
#include <QtDeclarative/private/qdeclarativelistmodel_p.h>
#include "../../../shared/util.h"
+#ifdef Q_OS_SYMBIAN
+// In Symbian OS test data is located in applications private dir
+#define SRCDIR "."
+#endif
+
class tst_QDeclarativeGridView : public QObject
{
Q_OBJECT
@@ -76,6 +81,7 @@
void enforceRange();
void QTBUG_8456();
void manualHighlight();
+ void footer();
private:
QDeclarativeView *createView();
@@ -142,6 +148,14 @@
emit dataChanged(index(idx,0), index(idx,0));
}
+ void clear() {
+ int count = list.count();
+ emit beginRemoveRows(QModelIndex(), 0, count-1);
+ list.clear();
+ emit endRemoveRows();
+ }
+
+
private:
QList<QPair<QString,QString> > list;
};
@@ -173,17 +187,17 @@
QDeclarativeGridView *gridview = findItem<QDeclarativeGridView>(canvas->rootObject(), "grid");
QTRY_VERIFY(gridview != 0);
- QDeclarativeItem *viewport = gridview->viewport();
- QTRY_VERIFY(viewport != 0);
+ QDeclarativeItem *contentItem = gridview->contentItem();
+ QTRY_VERIFY(contentItem != 0);
QTRY_COMPARE(gridview->count(), model.count());
- QTRY_COMPARE(viewport->childItems().count(), model.count()+1); // assumes all are visible, +1 for the (default) highlight item
+ QTRY_COMPARE(contentItem->childItems().count(), model.count()+1); // assumes all are visible, +1 for the (default) highlight item
for (int i = 0; i < model.count(); ++i) {
- QDeclarativeText *name = findItem<QDeclarativeText>(viewport, "textName", i);
+ QDeclarativeText *name = findItem<QDeclarativeText>(contentItem, "textName", i);
QTRY_VERIFY(name != 0);
QTRY_COMPARE(name->text(), model.name(i));
- QDeclarativeText *number = findItem<QDeclarativeText>(viewport, "textNumber", i);
+ QDeclarativeText *number = findItem<QDeclarativeText>(contentItem, "textNumber", i);
QTRY_VERIFY(number != 0);
QTRY_COMPARE(number->text(), model.number(i));
}
@@ -192,7 +206,7 @@
TestModel model2;
ctxt->setContextProperty("testModel", &model2);
- int itemCount = findItems<QDeclarativeItem>(viewport, "wrapper").count();
+ int itemCount = findItems<QDeclarativeItem>(contentItem, "wrapper").count();
QTRY_VERIFY(itemCount == 0);
delete canvas;
@@ -221,14 +235,14 @@
QDeclarativeFlickable *gridview = findItem<QDeclarativeFlickable>(canvas->rootObject(), "grid");
QTRY_VERIFY(gridview != 0);
- QDeclarativeItem *viewport = gridview->viewport();
- QTRY_VERIFY(viewport != 0);
+ QDeclarativeItem *contentItem = gridview->contentItem();
+ QTRY_VERIFY(contentItem != 0);
model.modifyItem(1, "Will", "9876");
- QDeclarativeText *name = findItem<QDeclarativeText>(viewport, "textName", 1);
+ QDeclarativeText *name = findItem<QDeclarativeText>(contentItem, "textName", 1);
QTRY_VERIFY(name != 0);
QTRY_COMPARE(name->text(), model.name(1));
- QDeclarativeText *number = findItem<QDeclarativeText>(viewport, "textNumber", 1);
+ QDeclarativeText *number = findItem<QDeclarativeText>(contentItem, "textNumber", 1);
QTRY_VERIFY(number != 0);
QTRY_COMPARE(number->text(), model.number(1));
@@ -254,17 +268,17 @@
QDeclarativeGridView *gridview = findItem<QDeclarativeGridView>(canvas->rootObject(), "grid");
QTRY_VERIFY(gridview != 0);
- QDeclarativeItem *viewport = gridview->viewport();
- QTRY_VERIFY(viewport != 0);
+ QDeclarativeItem *contentItem = gridview->contentItem();
+ QTRY_VERIFY(contentItem != 0);
model.insertItem(1, "Will", "9876");
- QTRY_COMPARE(viewport->childItems().count(), model.count()+1); // assumes all are visible, +1 for the (default) highlight item
+ QTRY_COMPARE(contentItem->childItems().count(), model.count()+1); // assumes all are visible, +1 for the (default) highlight item
- QDeclarativeText *name = findItem<QDeclarativeText>(viewport, "textName", 1);
+ QDeclarativeText *name = findItem<QDeclarativeText>(contentItem, "textName", 1);
QTRY_VERIFY(name != 0);
QTRY_COMPARE(name->text(), model.name(1));
- QDeclarativeText *number = findItem<QDeclarativeText>(viewport, "textNumber", 1);
+ QDeclarativeText *number = findItem<QDeclarativeText>(contentItem, "textNumber", 1);
QTRY_VERIFY(number != 0);
QTRY_COMPARE(number->text(), model.number(1));
@@ -274,19 +288,19 @@
// Confirm items positioned correctly
for (int i = 0; i < model.count(); ++i) {
- QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
+ QDeclarativeItem *item = findItem<QDeclarativeItem>(contentItem, "wrapper", i);
QTRY_COMPARE(item->x(), (i%3)*80.0);
QTRY_COMPARE(item->y(), (i/3)*60.0);
}
model.insertItem(0, "Foo", "1111"); // zero index, and current item
- QTRY_COMPARE(viewport->childItems().count(), model.count()+1); // assumes all are visible, +1 for the (default) highlight item
+ QTRY_COMPARE(contentItem->childItems().count(), model.count()+1); // assumes all are visible, +1 for the (default) highlight item
- name = findItem<QDeclarativeText>(viewport, "textName", 0);
+ name = findItem<QDeclarativeText>(contentItem, "textName", 0);
QTRY_VERIFY(name != 0);
QTRY_COMPARE(name->text(), model.name(0));
- number = findItem<QDeclarativeText>(viewport, "textNumber", 0);
+ number = findItem<QDeclarativeText>(contentItem, "textNumber", 0);
QTRY_VERIFY(number != 0);
QTRY_COMPARE(number->text(), model.number(0));
@@ -294,7 +308,7 @@
// Confirm items positioned correctly
for (int i = 0; i < model.count(); ++i) {
- QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
+ QDeclarativeItem *item = findItem<QDeclarativeItem>(contentItem, "wrapper", i);
QTRY_VERIFY(item->x() == (i%3)*80);
QTRY_VERIFY(item->y() == (i/3)*60);
}
@@ -330,15 +344,15 @@
QDeclarativeGridView *gridview = findItem<QDeclarativeGridView>(canvas->rootObject(), "grid");
QTRY_VERIFY(gridview != 0);
- QDeclarativeItem *viewport = gridview->viewport();
- QTRY_VERIFY(viewport != 0);
+ QDeclarativeItem *contentItem = gridview->contentItem();
+ QTRY_VERIFY(contentItem != 0);
model.removeItem(1);
- QDeclarativeText *name = findItem<QDeclarativeText>(viewport, "textName", 1);
+ QDeclarativeText *name = findItem<QDeclarativeText>(contentItem, "textName", 1);
QTRY_VERIFY(name != 0);
QTRY_COMPARE(name->text(), model.name(1));
- QDeclarativeText *number = findItem<QDeclarativeText>(viewport, "textNumber", 1);
+ QDeclarativeText *number = findItem<QDeclarativeText>(contentItem, "textNumber", 1);
QTRY_VERIFY(number != 0);
QTRY_COMPARE(number->text(), model.number(1));
@@ -347,9 +361,9 @@
QTRY_COMPARE(removed, QString("Item1"));
// Confirm items positioned correctly
- int itemCount = findItems<QDeclarativeItem>(viewport, "wrapper").count();
+ int itemCount = findItems<QDeclarativeItem>(contentItem, "wrapper").count();
for (int i = 0; i < model.count() && i < itemCount; ++i) {
- QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
+ QDeclarativeItem *item = findItem<QDeclarativeItem>(contentItem, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
QTRY_VERIFY(item);
QTRY_VERIFY(item->x() == (i%3)*80);
@@ -359,17 +373,17 @@
// Remove first item (which is the current item);
model.removeItem(0);
- name = findItem<QDeclarativeText>(viewport, "textName", 0);
+ name = findItem<QDeclarativeText>(contentItem, "textName", 0);
QTRY_VERIFY(name != 0);
QTRY_COMPARE(name->text(), model.name(0));
- number = findItem<QDeclarativeText>(viewport, "textNumber", 0);
+ number = findItem<QDeclarativeText>(contentItem, "textNumber", 0);
QTRY_VERIFY(number != 0);
QTRY_COMPARE(number->text(), model.number(0));
// Confirm items positioned correctly
- itemCount = findItems<QDeclarativeItem>(viewport, "wrapper").count();
+ itemCount = findItems<QDeclarativeItem>(contentItem, "wrapper").count();
for (int i = 0; i < model.count() && i < itemCount; ++i) {
- QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
+ QDeclarativeItem *item = findItem<QDeclarativeItem>(contentItem, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
QTRY_VERIFY(item);
QTRY_VERIFY(item->x() == (i%3)*80);
@@ -380,9 +394,9 @@
model.removeItem(25);
// Confirm items positioned correctly
- itemCount = findItems<QDeclarativeItem>(viewport, "wrapper").count();
+ itemCount = findItems<QDeclarativeItem>(contentItem, "wrapper").count();
for (int i = 0; i < model.count() && i < itemCount; ++i) {
- QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
+ QDeclarativeItem *item = findItem<QDeclarativeItem>(contentItem, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
QTRY_VERIFY(item);
QTRY_VERIFY(item->x() == (i%3)*80);
@@ -400,7 +414,7 @@
// Confirm items positioned correctly
for (int i = 6; i < 18; ++i) {
- QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
+ QDeclarativeItem *item = findItem<QDeclarativeItem>(contentItem, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
QTRY_VERIFY(item);
QTRY_VERIFY(item->x() == (i%3)*80);
@@ -419,9 +433,9 @@
QTest::qWait(100);
// Confirm items positioned correctly
- itemCount = findItems<QDeclarativeItem>(viewport, "wrapper").count();
+ itemCount = findItems<QDeclarativeItem>(contentItem, "wrapper").count();
for (int i = 0; i < model.count() && i < itemCount; ++i) {
- QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
+ QDeclarativeItem *item = findItem<QDeclarativeItem>(contentItem, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
QTRY_VERIFY(item);
QTRY_VERIFY(item->x() == (i%3)*80);
@@ -473,29 +487,29 @@
QDeclarativeGridView *gridview = findItem<QDeclarativeGridView>(canvas->rootObject(), "grid");
QTRY_VERIFY(gridview != 0);
- QDeclarativeItem *viewport = gridview->viewport();
- QTRY_VERIFY(viewport != 0);
+ QDeclarativeItem *contentItem = gridview->contentItem();
+ QTRY_VERIFY(contentItem != 0);
model.moveItem(1, 8);
- QDeclarativeText *name = findItem<QDeclarativeText>(viewport, "textName", 1);
+ QDeclarativeText *name = findItem<QDeclarativeText>(contentItem, "textName", 1);
QTRY_VERIFY(name != 0);
QTRY_COMPARE(name->text(), model.name(1));
- QDeclarativeText *number = findItem<QDeclarativeText>(viewport, "textNumber", 1);
+ QDeclarativeText *number = findItem<QDeclarativeText>(contentItem, "textNumber", 1);
QTRY_VERIFY(number != 0);
QTRY_COMPARE(number->text(), model.number(1));
- name = findItem<QDeclarativeText>(viewport, "textName", 8);
+ name = findItem<QDeclarativeText>(contentItem, "textName", 8);
QTRY_VERIFY(name != 0);
QTRY_COMPARE(name->text(), model.name(8));
- number = findItem<QDeclarativeText>(viewport, "textNumber", 8);
+ number = findItem<QDeclarativeText>(contentItem, "textNumber", 8);
QTRY_VERIFY(number != 0);
QTRY_COMPARE(number->text(), model.number(8));
// Confirm items positioned correctly
- int itemCount = findItems<QDeclarativeItem>(viewport, "wrapper").count();
+ int itemCount = findItems<QDeclarativeItem>(contentItem, "wrapper").count();
for (int i = 0; i < model.count() && i < itemCount; ++i) {
- QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
+ QDeclarativeItem *item = findItem<QDeclarativeItem>(contentItem, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
QTRY_VERIFY(item);
QTRY_VERIFY(item->x() == (i%3)*80);
@@ -508,17 +522,17 @@
model.moveItem(1, 25);
// Confirm items positioned correctly and indexes correct
- itemCount = findItems<QDeclarativeItem>(viewport, "wrapper").count()-1;
+ itemCount = findItems<QDeclarativeItem>(contentItem, "wrapper").count()-1;
for (int i = 6; i < model.count()-6 && i < itemCount+6; ++i) {
- QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
+ QDeclarativeItem *item = findItem<QDeclarativeItem>(contentItem, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
QTRY_VERIFY(item);
QTRY_COMPARE(item->x(), qreal((i%3)*80));
QTRY_COMPARE(item->y(), qreal((i/3)*60));
- name = findItem<QDeclarativeText>(viewport, "textName", i);
+ name = findItem<QDeclarativeText>(contentItem, "textName", i);
QTRY_VERIFY(name != 0);
QTRY_COMPARE(name->text(), model.name(i));
- number = findItem<QDeclarativeText>(viewport, "textNumber", i);
+ number = findItem<QDeclarativeText>(contentItem, "textNumber", i);
QTRY_VERIFY(number != 0);
QTRY_COMPARE(number->text(), model.number(i));
}
@@ -528,15 +542,15 @@
// Confirm items positioned correctly and indexes correct
for (int i = 6; i < model.count()-6 && i < itemCount+6; ++i) {
- QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
+ QDeclarativeItem *item = findItem<QDeclarativeItem>(contentItem, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
QTRY_VERIFY(item);
QTRY_VERIFY(item->x() == (i%3)*80);
QTRY_VERIFY(item->y() == (i/3)*60);
- name = findItem<QDeclarativeText>(viewport, "textName", i);
+ name = findItem<QDeclarativeText>(contentItem, "textName", i);
QTRY_VERIFY(name != 0);
QTRY_COMPARE(name->text(), model.name(i));
- number = findItem<QDeclarativeText>(viewport, "textNumber", i);
+ number = findItem<QDeclarativeText>(contentItem, "textNumber", i);
QTRY_VERIFY(number != 0);
QTRY_COMPARE(number->text(), model.number(i));
}
@@ -552,7 +566,7 @@
void tst_QDeclarativeGridView::currentIndex()
{
TestModel model;
- for (int i = 0; i < 30; i++)
+ for (int i = 0; i < 60; i++)
model.addItem("Item" + QString::number(i), QString::number(i));
QDeclarativeView *canvas = new QDeclarativeView(0);
@@ -567,57 +581,58 @@
qApp->processEvents();
QDeclarativeGridView *gridview = findItem<QDeclarativeGridView>(canvas->rootObject(), "grid");
- QTRY_VERIFY(gridview != 0);
+ QVERIFY(gridview != 0);
- QDeclarativeItem *viewport = gridview->viewport();
- QTRY_VERIFY(viewport != 0);
+ QDeclarativeItem *contentItem = gridview->contentItem();
+ QVERIFY(contentItem != 0);
// current item should be third item
- QTRY_COMPARE(gridview->currentIndex(), 5);
- QTRY_COMPARE(gridview->currentItem(), findItem<QDeclarativeItem>(viewport, "wrapper", 5));
- QTRY_COMPARE(gridview->currentItem()->y(), gridview->highlightItem()->y());
+ QCOMPARE(gridview->currentIndex(), 35);
+ QCOMPARE(gridview->currentItem(), findItem<QDeclarativeItem>(contentItem, "wrapper", 35));
+ QCOMPARE(gridview->currentItem()->y(), gridview->highlightItem()->y());
+ QCOMPARE(gridview->contentY(), 399.0);
gridview->moveCurrentIndexRight();
- QTRY_COMPARE(gridview->currentIndex(), 6);
+ QCOMPARE(gridview->currentIndex(), 36);
gridview->moveCurrentIndexDown();
- QTRY_COMPARE(gridview->currentIndex(), 9);
+ QCOMPARE(gridview->currentIndex(), 39);
gridview->moveCurrentIndexUp();
- QTRY_COMPARE(gridview->currentIndex(), 6);
+ QCOMPARE(gridview->currentIndex(), 36);
gridview->moveCurrentIndexLeft();
- QTRY_COMPARE(gridview->currentIndex(), 5);
+ QCOMPARE(gridview->currentIndex(), 35);
// no wrap
gridview->setCurrentIndex(0);
- QTRY_COMPARE(gridview->currentIndex(), 0);
+ QCOMPARE(gridview->currentIndex(), 0);
gridview->moveCurrentIndexUp();
- QTRY_COMPARE(gridview->currentIndex(), 0);
+ QCOMPARE(gridview->currentIndex(), 0);
gridview->moveCurrentIndexLeft();
- QTRY_COMPARE(gridview->currentIndex(), 0);
+ QCOMPARE(gridview->currentIndex(), 0);
gridview->setCurrentIndex(model.count()-1);
- QTRY_COMPARE(gridview->currentIndex(), model.count()-1);
+ QCOMPARE(gridview->currentIndex(), model.count()-1);
gridview->moveCurrentIndexRight();
- QTRY_COMPARE(gridview->currentIndex(), model.count()-1);
+ QCOMPARE(gridview->currentIndex(), model.count()-1);
gridview->moveCurrentIndexDown();
- QTRY_COMPARE(gridview->currentIndex(), model.count()-1);
+ QCOMPARE(gridview->currentIndex(), model.count()-1);
// with wrap
gridview->setWrapEnabled(true);
gridview->setCurrentIndex(0);
- QTRY_COMPARE(gridview->currentIndex(), 0);
+ QCOMPARE(gridview->currentIndex(), 0);
gridview->moveCurrentIndexLeft();
- QTRY_COMPARE(gridview->currentIndex(), model.count()-1);
+ QCOMPARE(gridview->currentIndex(), model.count()-1);
- QTRY_COMPARE(gridview->contentY(), 279.0);
+ QTRY_COMPARE(gridview->contentY(), 879.0);
gridview->moveCurrentIndexRight();
- QTRY_COMPARE(gridview->currentIndex(), 0);
+ QCOMPARE(gridview->currentIndex(), 0);
QTRY_COMPARE(gridview->contentY(), 0.0);
@@ -633,30 +648,30 @@
qApp->processEvents();
QTest::keyClick(canvas, Qt::Key_Down);
- QTRY_COMPARE(gridview->currentIndex(), 3);
+ QCOMPARE(gridview->currentIndex(), 3);
QTest::keyClick(canvas, Qt::Key_Up);
- QTRY_COMPARE(gridview->currentIndex(), 0);
+ QCOMPARE(gridview->currentIndex(), 0);
gridview->setFlow(QDeclarativeGridView::TopToBottom);
QTest::keyClick(canvas, Qt::Key_Right);
- QTRY_COMPARE(gridview->currentIndex(), 5);
+ QCOMPARE(gridview->currentIndex(), 5);
QTest::keyClick(canvas, Qt::Key_Left);
- QTRY_COMPARE(gridview->currentIndex(), 0);
+ QCOMPARE(gridview->currentIndex(), 0);
QTest::keyClick(canvas, Qt::Key_Down);
- QTRY_COMPARE(gridview->currentIndex(), 1);
+ QCOMPARE(gridview->currentIndex(), 1);
QTest::keyClick(canvas, Qt::Key_Up);
- QTRY_COMPARE(gridview->currentIndex(), 0);
+ QCOMPARE(gridview->currentIndex(), 0);
// turn off auto highlight
gridview->setHighlightFollowsCurrentItem(false);
- QTRY_VERIFY(gridview->highlightFollowsCurrentItem() == false);
- QTRY_VERIFY(gridview->highlightItem());
+ QVERIFY(gridview->highlightFollowsCurrentItem() == false);
+ QVERIFY(gridview->highlightItem());
qreal hlPosX = gridview->highlightItem()->x();
qreal hlPosY = gridview->highlightItem()->y();
@@ -690,21 +705,21 @@
QDeclarativeGridView *gridview = findItem<QDeclarativeGridView>(canvas->rootObject(), "grid");
QTRY_VERIFY(gridview != 0);
- QDeclarativeItem *viewport = gridview->viewport();
- QTRY_VERIFY(viewport != 0);
+ QDeclarativeItem *contentItem = gridview->contentItem();
+ QTRY_VERIFY(contentItem != 0);
// Confirm items positioned correctly and indexes correct
- int itemCount = findItems<QDeclarativeItem>(viewport, "wrapper").count();
+ int itemCount = findItems<QDeclarativeItem>(contentItem, "wrapper").count();
for (int i = 0; i < model.count() && i < itemCount; ++i) {
- QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
+ QDeclarativeItem *item = findItem<QDeclarativeItem>(contentItem, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
QTRY_VERIFY(item);
QTRY_COMPARE(item->x(), qreal((i%3)*80));
QTRY_COMPARE(item->y(), qreal((i/3)*60));
- QDeclarativeText *name = findItem<QDeclarativeText>(viewport, "textName", i);
+ QDeclarativeText *name = findItem<QDeclarativeText>(contentItem, "textName", i);
QTRY_VERIFY(name != 0);
QTRY_COMPARE(name->text(), model.name(i));
- QDeclarativeText *number = findItem<QDeclarativeText>(viewport, "textNumber", i);
+ QDeclarativeText *number = findItem<QDeclarativeText>(contentItem, "textNumber", i);
QTRY_VERIFY(number != 0);
QTRY_COMPARE(number->text(), model.number(i));
}
@@ -712,17 +727,17 @@
ctxt->setContextProperty("testTopToBottom", QVariant(true));
// Confirm items positioned correctly and indexes correct
- itemCount = findItems<QDeclarativeItem>(viewport, "wrapper").count();
+ itemCount = findItems<QDeclarativeItem>(contentItem, "wrapper").count();
for (int i = 0; i < model.count() && i < itemCount; ++i) {
- QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
+ QDeclarativeItem *item = findItem<QDeclarativeItem>(contentItem, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
QTRY_VERIFY(item);
QTRY_COMPARE(item->x(), qreal((i/5)*80));
QTRY_COMPARE(item->y(), qreal((i%5)*60));
- QDeclarativeText *name = findItem<QDeclarativeText>(viewport, "textName", i);
+ QDeclarativeText *name = findItem<QDeclarativeText>(contentItem, "textName", i);
QTRY_VERIFY(name != 0);
QTRY_COMPARE(name->text(), model.name(i));
- QDeclarativeText *number = findItem<QDeclarativeText>(viewport, "textNumber", i);
+ QDeclarativeText *number = findItem<QDeclarativeText>(contentItem, "textNumber", i);
QTRY_VERIFY(number != 0);
QTRY_COMPARE(number->text(), model.number(i));
}
@@ -833,21 +848,34 @@
QSignalSpy highlightSpy(gridView, SIGNAL(highlightChanged()));
QSignalSpy delegateSpy(gridView, SIGNAL(delegateChanged()));
+ QSignalSpy headerSpy(gridView, SIGNAL(headerChanged()));
+ QSignalSpy footerSpy(gridView, SIGNAL(footerChanged()));
gridView->setHighlight(&component);
gridView->setDelegate(&delegateComponent);
+ gridView->setHeader(&component);
+ gridView->setFooter(&component);
QTRY_COMPARE(gridView->highlight(), &component);
QTRY_COMPARE(gridView->delegate(), &delegateComponent);
+ QTRY_COMPARE(gridView->header(), &component);
+ QTRY_COMPARE(gridView->footer(), &component);
QTRY_COMPARE(highlightSpy.count(),1);
QTRY_COMPARE(delegateSpy.count(),1);
+ QTRY_COMPARE(headerSpy.count(),1);
+ QTRY_COMPARE(footerSpy.count(),1);
gridView->setHighlight(&component);
gridView->setDelegate(&delegateComponent);
+ gridView->setHeader(&component);
+ gridView->setFooter(&component);
QTRY_COMPARE(highlightSpy.count(),1);
QTRY_COMPARE(delegateSpy.count(),1);
+ QTRY_COMPARE(headerSpy.count(),1);
+ QTRY_COMPARE(footerSpy.count(),1);
+
delete canvas;
}
@@ -895,13 +923,13 @@
QDeclarativeGridView *gridview = findItem<QDeclarativeGridView>(canvas->rootObject(), "grid");
QTRY_VERIFY(gridview != 0);
- QDeclarativeItem *viewport = gridview->viewport();
- QTRY_VERIFY(viewport != 0);
+ QDeclarativeItem *contentItem = gridview->contentItem();
+ QTRY_VERIFY(contentItem != 0);
// Confirm items positioned correctly
- int itemCount = findItems<QDeclarativeItem>(viewport, "wrapper").count();
+ int itemCount = findItems<QDeclarativeItem>(contentItem, "wrapper").count();
for (int i = 0; i < model.count() && i < itemCount-1; ++i) {
- QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
+ QDeclarativeItem *item = findItem<QDeclarativeItem>(contentItem, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
QTRY_VERIFY(item);
QTRY_COMPARE(item->x(), (i%3)*80.);
@@ -913,9 +941,9 @@
QTRY_COMPARE(gridview->contentY(), 60.);
// Confirm items positioned correctly
- itemCount = findItems<QDeclarativeItem>(viewport, "wrapper").count();
+ itemCount = findItems<QDeclarativeItem>(contentItem, "wrapper").count();
for (int i = 3; i < model.count() && i < itemCount-3-1; ++i) {
- QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
+ QDeclarativeItem *item = findItem<QDeclarativeItem>(contentItem, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
QTRY_VERIFY(item);
QTRY_COMPARE(item->x(), (i%3)*80.);
@@ -927,9 +955,9 @@
QTRY_COMPARE(gridview->contentY(), 420.);
// Confirm items positioned correctly
- itemCount = findItems<QDeclarativeItem>(viewport, "wrapper").count();
+ itemCount = findItems<QDeclarativeItem>(contentItem, "wrapper").count();
for (int i = 22; i < model.count() && i < itemCount-22-1; ++i) {
- QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
+ QDeclarativeItem *item = findItem<QDeclarativeItem>(contentItem, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
QTRY_VERIFY(item);
QTRY_COMPARE(item->x(), (i%3)*80.);
@@ -941,9 +969,9 @@
QTRY_COMPARE(gridview->contentY(), 520.);
// Confirm items positioned correctly
- itemCount = findItems<QDeclarativeItem>(viewport, "wrapper").count();
+ itemCount = findItems<QDeclarativeItem>(contentItem, "wrapper").count();
for (int i = 24; i < model.count() && i < itemCount-24-1; ++i) {
- QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
+ QDeclarativeItem *item = findItem<QDeclarativeItem>(contentItem, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
QTRY_VERIFY(item);
QTRY_COMPARE(item->x(), (i%3)*80.);
@@ -955,9 +983,9 @@
QTRY_COMPARE(gridview->contentY(), 0.);
// Confirm items positioned correctly
- itemCount = findItems<QDeclarativeItem>(viewport, "wrapper").count();
+ itemCount = findItems<QDeclarativeItem>(contentItem, "wrapper").count();
for (int i = 0; i < model.count() && i < itemCount-1; ++i) {
- QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
+ QDeclarativeItem *item = findItem<QDeclarativeItem>(contentItem, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
QTRY_VERIFY(item);
QTRY_COMPARE(item->x(), (i%3)*80.);
@@ -1025,13 +1053,13 @@
QDeclarativeGridView *gridview = findItem<QDeclarativeGridView>(canvas->rootObject(), "grid");
QTRY_VERIFY(gridview != 0);
- QDeclarativeItem *viewport = gridview->viewport();
- QTRY_VERIFY(viewport != 0);
+ QDeclarativeItem *contentItem = gridview->contentItem();
+ QTRY_VERIFY(contentItem != 0);
QTRY_COMPARE(gridview->count(), model.rowCount());
for (int i = 0; i < model.rowCount(); ++i) {
- QDeclarativeText *display = findItem<QDeclarativeText>(viewport, "displayText", i);
+ QDeclarativeText *display = findItem<QDeclarativeText>(contentItem, "displayText", i);
QTRY_VERIFY(display != 0);
QTRY_COMPARE(display->text(), strings.at(i));
}
@@ -1043,7 +1071,7 @@
QTRY_COMPARE(gridview->count(), model.rowCount());
for (int i = 0; i < model.rowCount(); ++i) {
- QDeclarativeText *display = findItem<QDeclarativeText>(viewport, "displayText", i);
+ QDeclarativeText *display = findItem<QDeclarativeText>(contentItem, "displayText", i);
QTRY_VERIFY(display != 0);
QTRY_COMPARE(display->text(), strings.at(i));
}
@@ -1070,28 +1098,35 @@
QTRY_COMPARE(gridview->preferredHighlightEnd(), 100.0);
QTRY_COMPARE(gridview->highlightRangeMode(), QDeclarativeGridView::StrictlyEnforceRange);
- QDeclarativeItem *viewport = gridview->viewport();
- QTRY_VERIFY(viewport != 0);
+ QDeclarativeItem *contentItem = gridview->contentItem();
+ QTRY_VERIFY(contentItem != 0);
// view should be positioned at the top of the range.
- QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", 0);
+ QDeclarativeItem *item = findItem<QDeclarativeItem>(contentItem, "wrapper", 0);
QTRY_VERIFY(item);
QTRY_COMPARE(gridview->contentY(), -100.0);
- QDeclarativeText *name = findItem<QDeclarativeText>(viewport, "textName", 0);
+ QDeclarativeText *name = findItem<QDeclarativeText>(contentItem, "textName", 0);
QTRY_VERIFY(name != 0);
QTRY_COMPARE(name->text(), model.name(0));
- QDeclarativeText *number = findItem<QDeclarativeText>(viewport, "textNumber", 0);
+ QDeclarativeText *number = findItem<QDeclarativeText>(contentItem, "textNumber", 0);
QTRY_VERIFY(number != 0);
QTRY_COMPARE(number->text(), model.number(0));
- // Check currentIndex is updated when viewport moves
+ // Check currentIndex is updated when contentItem moves
gridview->setContentY(0);
QTRY_COMPARE(gridview->currentIndex(), 2);
gridview->setCurrentIndex(5);
QTRY_COMPARE(gridview->contentY(), 100.);
+ TestModel model2;
+ for (int i = 0; i < 5; i++)
+ model2.addItem("Item" + QString::number(i), "");
+
+ ctxt->setContextProperty("testModel", &model2);
+ QCOMPARE(gridview->count(), 5);
+
delete canvas;
}
@@ -1120,22 +1155,54 @@
QDeclarativeGridView *gridview = findItem<QDeclarativeGridView>(canvas->rootObject(), "grid");
QTRY_VERIFY(gridview != 0);
- QDeclarativeItem *viewport = gridview->viewport();
- QTRY_VERIFY(viewport != 0);
+ QDeclarativeItem *contentItem = gridview->contentItem();
+ QTRY_VERIFY(contentItem != 0);
QTRY_COMPARE(gridview->currentIndex(), 0);
- QTRY_COMPARE(gridview->currentItem(), findItem<QDeclarativeItem>(viewport, "wrapper", 0));
+ QTRY_COMPARE(gridview->currentItem(), findItem<QDeclarativeItem>(contentItem, "wrapper", 0));
QTRY_COMPARE(gridview->highlightItem()->y(), gridview->currentItem()->y());
QTRY_COMPARE(gridview->highlightItem()->x(), gridview->currentItem()->x());
gridview->setCurrentIndex(2);
QTRY_COMPARE(gridview->currentIndex(), 2);
- QTRY_COMPARE(gridview->currentItem(), findItem<QDeclarativeItem>(viewport, "wrapper", 2));
+ QTRY_COMPARE(gridview->currentItem(), findItem<QDeclarativeItem>(contentItem, "wrapper", 2));
QTRY_COMPARE(gridview->highlightItem()->y(), gridview->currentItem()->y());
QTRY_COMPARE(gridview->highlightItem()->x(), gridview->currentItem()->x());
}
+void tst_QDeclarativeGridView::footer()
+{
+ QDeclarativeView *canvas = createView();
+
+ TestModel model;
+ for (int i = 0; i < 7; i++)
+ model.addItem("Item" + QString::number(i), "");
+
+ QDeclarativeContext *ctxt = canvas->rootContext();
+ ctxt->setContextProperty("testModel", &model);
+
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/footer.qml"));
+ qApp->processEvents();
+
+ QDeclarativeGridView *gridview = findItem<QDeclarativeGridView>(canvas->rootObject(), "grid");
+ QTRY_VERIFY(gridview != 0);
+
+ QDeclarativeItem *contentItem = gridview->contentItem();
+ QTRY_VERIFY(contentItem != 0);
+
+ QDeclarativeText *footer = findItem<QDeclarativeText>(contentItem, "footer");
+ QVERIFY(footer);
+
+ QCOMPARE(footer->y(), 180.0);
+
+ model.removeItem(2);
+ QTRY_COMPARE(footer->y(), 120.0);
+
+ model.clear();
+ QTRY_COMPARE(footer->y(), 0.0);
+}
+
QDeclarativeView *tst_QDeclarativeGridView::createView()
{