summaryrefslogtreecommitdiffstats
path: root/src/declarative/fx
diff options
context:
space:
mode:
Diffstat (limited to 'src/declarative/fx')
-rw-r--r--src/declarative/fx/qfxrepeater.cpp11
-rw-r--r--src/declarative/fx/qfxrepeater.h1
2 files changed, 11 insertions, 1 deletions
diff --git a/src/declarative/fx/qfxrepeater.cpp b/src/declarative/fx/qfxrepeater.cpp
index ad4081b..78e9f51 100644
--- a/src/declarative/fx/qfxrepeater.cpp
+++ b/src/declarative/fx/qfxrepeater.cpp
@@ -235,6 +235,15 @@ void QFxRepeater::setComponent(QmlComponent *_c)
/*!
\internal
*/
+void QFxRepeater::componentComplete()
+{
+ QFxItem::componentComplete();
+ regenerate();
+}
+
+/*!
+ \internal
+ */
void QFxRepeater::parentChanged(QSimpleCanvasItem *o, QSimpleCanvasItem *n)
{
QFxItem::parentChanged(o, n);
@@ -250,7 +259,7 @@ void QFxRepeater::regenerate()
qDeleteAll(d->deletables);
d->deletables.clear();
- if(!d->component || !itemParent())
+ if(!d->component || !itemParent() || !isComponentComplete())
return;
QFxItem *lastItem = this;
diff --git a/src/declarative/fx/qfxrepeater.h b/src/declarative/fx/qfxrepeater.h
index f6c4584..8efd281 100644
--- a/src/declarative/fx/qfxrepeater.h
+++ b/src/declarative/fx/qfxrepeater.h
@@ -72,6 +72,7 @@ private:
void regenerate();
protected:
+ virtual void componentComplete();
virtual void parentChanged(QSimpleCanvasItem *, QSimpleCanvasItem *);
QFxRepeater(QFxRepeaterPrivate &dd, QFxItem *parent);