disconnect(d->model, SIGNAL(modelUpdated(QDeclarativeChangeSet,bool)),
this, SLOT(modelUpdated(QDeclarativeChangeSet,bool)));
disconnect(d->model, SIGNAL(createdItem(int,QQuickItem*)), this, SLOT(createdItem(int,QQuickItem*)));
+ disconnect(d->model, SIGNAL(initItem(int,QQuickItem*)), this, SLOT(initItem(int,QQuickItem*)));
// disconnect(d->model, SIGNAL(destroyingItem(QQuickItem*)), this, SLOT(destroyingItem(QQuickItem*)));
}
d->dataSource = model;
connect(d->model, SIGNAL(modelUpdated(QDeclarativeChangeSet,bool)),
this, SLOT(modelUpdated(QDeclarativeChangeSet,bool)));
connect(d->model, SIGNAL(createdItem(int,QQuickItem*)), this, SLOT(createdItem(int,QQuickItem*)));
+ connect(d->model, SIGNAL(initItem(int,QQuickItem*)), this, SLOT(initItem(int,QQuickItem*)));
// connect(d->model, SIGNAL(destroyingItem(QQuickItem*)), this, SLOT(destroyingItem(QQuickItem*)));
regenerate();
}
inRequest = false;
}
-void QQuickRepeater::createdItem(int index, QQuickItem *item)
+void QQuickRepeater::createdItem(int, QQuickItem *)
{
Q_D(QQuickRepeater);
if (!d->inRequest)
d->createItems();
}
+void QQuickRepeater::initItem(int, QQuickItem *item)
+{
+ QDeclarative_setParent_noEvent(item, parentItem());
+ item->setParentItem(parentItem());
+}
+
void QQuickRepeater::modelUpdated(const QDeclarativeChangeSet &changeSet, bool reset)
{
Q_D(QQuickRepeater);
void modelChanged();
void properties();
void asynchronous();
+ void initParent();
private:
QQuickView *createView();
delete canvas;
}
+void tst_QQuickRepeater::initParent()
+{
+ QDeclarativeEngine engine;
+ QDeclarativeComponent component(&engine, TEST_FILE("initparent.qml"));
+
+ QQuickItem *rootObject = qobject_cast<QQuickItem*>(component.create());
+ QVERIFY(rootObject);
+
+ QCOMPARE(qvariant_cast<QQuickItem*>(rootObject->property("parentItem")), rootObject);
+}
+
QQuickView *tst_QQuickRepeater::createView()
{
QQuickView *canvas = new QQuickView(0);