diff options
author | Alan Alpert <aalpert@blackberry.com> | 2013-04-11 16:57:19 -0700 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-04-26 21:17:42 +0200 |
commit | 53e317468626284fe26877659dff551ce3bc0e55 (patch) | |
tree | bb129a2df33f3a283bcb7e6f33be6b00659b4467 /src/quick/items/qquickitemview.cpp | |
parent | 8563adb737cec5d440197ddbd514fe201c5f18ff (diff) |
No longer apply pending changes when accessing ItemView properties
Applying changes in the getters can lead to binding loops, and is
currently inconsistently applied. Removing the applyPendingChanges calls
from remaining getters, and adding a forceLayout() function for cases
where the immediate-apply behavior is needed.
Task-number: QTBUG-30555
Parts-of-patch-by: Albert Astals Cid
Change-Id: I64632601e02f2a53060296ab7739577a749d916f
Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
Reviewed-by: Albert Astals Cid <albert.astals@canonical.com>
Diffstat (limited to 'src/quick/items/qquickitemview.cpp')
-rw-r--r-- | src/quick/items/qquickitemview.cpp | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/quick/items/qquickitemview.cpp b/src/quick/items/qquickitemview.cpp index 03e16f2ebf..d774091ef5 100644 --- a/src/quick/items/qquickitemview.cpp +++ b/src/quick/items/qquickitemview.cpp @@ -249,7 +249,6 @@ QQuickItemView::~QQuickItemView() QQuickItem *QQuickItemView::currentItem() const { Q_D(const QQuickItemView); - const_cast<QQuickItemViewPrivate*>(d)->applyPendingChanges(); return d->currentItem ? d->currentItem->item : 0; } @@ -379,14 +378,12 @@ int QQuickItemView::count() const Q_D(const QQuickItemView); if (!d->model) return 0; - const_cast<QQuickItemViewPrivate*>(d)->applyPendingChanges(); return d->model->count(); } int QQuickItemView::currentIndex() const { Q_D(const QQuickItemView); - const_cast<QQuickItemViewPrivate*>(d)->applyPendingChanges(); return d->currentIndex; } @@ -496,7 +493,6 @@ QQmlComponent *QQuickItemView::header() const QQuickItem *QQuickItemView::headerItem() const { Q_D(const QQuickItemView); - const_cast<QQuickItemViewPrivate*>(d)->applyPendingChanges(); return d->header ? d->header->item : 0; } @@ -532,7 +528,6 @@ QQmlComponent *QQuickItemView::footer() const QQuickItem *QQuickItemView::footerItem() const { Q_D(const QQuickItemView); - const_cast<QQuickItemViewPrivate*>(d)->applyPendingChanges(); return d->footer ? d->footer->item : 0; } @@ -559,7 +554,6 @@ void QQuickItemView::setFooter(QQmlComponent *footerComponent) QQmlComponent *QQuickItemView::highlight() const { Q_D(const QQuickItemView); - const_cast<QQuickItemViewPrivate*>(d)->applyPendingChanges(); return d->highlightComponent; } @@ -579,7 +573,6 @@ void QQuickItemView::setHighlight(QQmlComponent *highlightComponent) QQuickItem *QQuickItemView::highlightItem() const { Q_D(const QQuickItemView); - const_cast<QQuickItemViewPrivate*>(d)->applyPendingChanges(); return d->highlight ? d->highlight->item : 0; } @@ -965,6 +958,12 @@ QQuickItem *QQuickItemView::itemAt(qreal x, qreal y) const return 0; } +void QQuickItemView::forceLayout() +{ + Q_D(QQuickItemView); + d->applyPendingChanges(); +} + void QQuickItemViewPrivate::applyPendingChanges() { Q_Q(QQuickItemView); |