diff options
Diffstat (limited to 'src/quick/items/qquickitemview.cpp')
-rw-r--r-- | src/quick/items/qquickitemview.cpp | 59 |
1 files changed, 30 insertions, 29 deletions
diff --git a/src/quick/items/qquickitemview.cpp b/src/quick/items/qquickitemview.cpp index aff03b7539..e017d6564a 100644 --- a/src/quick/items/qquickitemview.cpp +++ b/src/quick/items/qquickitemview.cpp @@ -181,7 +181,7 @@ void QQuickItemViewChangeSet::applyChanges(const QQmlChangeSet &changeSet) int moveId = -1; int moveOffset = 0; - foreach (const QQmlChangeSet::Change &r, changeSet.removes()) { + for (const QQmlChangeSet::Change &r : changeSet.removes()) { itemCount -= r.count; if (moveId == -1 && newCurrentIndex >= r.index + r.count) { newCurrentIndex -= r.count; @@ -200,7 +200,7 @@ void QQuickItemViewChangeSet::applyChanges(const QQmlChangeSet &changeSet) currentChanged = true; } } - foreach (const QQmlChangeSet::Change &i, changeSet.inserts()) { + for (const QQmlChangeSet::Change &i : changeSet.inserts()) { if (moveId == -1) { if (itemCount && newCurrentIndex >= i.index) { newCurrentIndex += i.count; @@ -1199,16 +1199,17 @@ void QQuickItemViewPrivate::showVisibleItems() const { qDebug() << "Visible items:"; for (int i = 0; i < visibleItems.count(); ++i) { - qDebug() << "\t" << visibleItems[i]->index - << visibleItems[i]->item->objectName() - << visibleItems[i]->position(); + qDebug() << "\t" << visibleItems.at(i)->index + << visibleItems.at(i)->item->objectName() + << visibleItems.at(i)->position(); } } -void QQuickItemViewPrivate::itemGeometryChanged(QQuickItem *item, const QRectF &newGeometry, const QRectF &oldGeometry) +void QQuickItemViewPrivate::itemGeometryChanged(QQuickItem *item, QQuickGeometryChange change, + const QRectF &diff) { Q_Q(QQuickItemView); - QQuickFlickablePrivate::itemGeometryChanged(item, newGeometry, oldGeometry); + QQuickFlickablePrivate::itemGeometryChanged(item, change, diff); if (!q->isComponentComplete()) return; @@ -1621,12 +1622,10 @@ qreal QQuickItemViewPrivate::contentStartOffset() const int QQuickItemViewPrivate::findLastVisibleIndex(int defaultValue) const { - if (visibleItems.count()) { - int i = visibleItems.count() - 1; - while (i > 0 && visibleItems.at(i)->index == -1) - --i; - if (visibleItems.at(i)->index != -1) - return visibleItems.at(i)->index; + for (auto it = visibleItems.rbegin(), end = visibleItems.rend(); it != end; ++it) { + auto item = *it; + if (item->index != -1) + return item->index; } return defaultValue; } @@ -1657,9 +1656,10 @@ FxViewItem *QQuickItemViewPrivate::firstVisibleItem() const { int QQuickItemViewPrivate::findLastIndexInView() const { const qreal viewEndPos = isContentFlowReversed() ? -position() : position() + size(); - for (int i=visibleItems.count() - 1; i>=0; i--) { - if (visibleItems.at(i)->position() <= viewEndPos && visibleItems.at(i)->index != -1) - return visibleItems.at(i)->index; + for (auto it = visibleItems.rbegin(), end = visibleItems.rend(); it != end; ++it) { + auto item = *it; + if (item->index != -1 && item->position() <= viewEndPos) + return item->index; } return -1; } @@ -1997,7 +1997,7 @@ bool QQuickItemViewPrivate::applyModelChanges(ChangeResult *totalInsertionResult prevViewPos = prevFirstVisible->position(); prevFirstVisibleIndex = prevFirstVisible->index; } - qreal prevVisibleItemsFirstPos = visibleItems.count() ? visibleItems.first()->position() : 0.0; + qreal prevVisibleItemsFirstPos = visibleItems.count() ? visibleItems.constFirst()->position() : 0.0; totalInsertionResult->visiblePos = prevViewPos; totalRemovalResult->visiblePos = prevViewPos; @@ -2076,13 +2076,13 @@ bool QQuickItemViewPrivate::applyModelChanges(ChangeResult *totalInsertionResult // can transition it from this "original" position to its new position in the view if (transitioner && transitioner->canTransition(QQuickItemViewTransitioner::MoveTransition, true)) { for (int i=0; i<movingIntoView.count(); i++) { - int fromIndex = findMoveKeyIndex(movingIntoView[i].moveKey, removals); + int fromIndex = findMoveKeyIndex(movingIntoView.at(i).moveKey, removals); if (fromIndex >= 0) { if (prevFirstVisibleIndex >= 0 && fromIndex < prevFirstVisibleIndex) - repositionItemAt(movingIntoView[i].item, fromIndex, -totalInsertionResult->sizeChangesAfterVisiblePos); + repositionItemAt(movingIntoView.at(i).item, fromIndex, -totalInsertionResult->sizeChangesAfterVisiblePos); else - repositionItemAt(movingIntoView[i].item, fromIndex, totalInsertionResult->sizeChangesAfterVisiblePos); - movingIntoView[i].item->transitionNextReposition(transitioner, QQuickItemViewTransitioner::MoveTransition, true); + repositionItemAt(movingIntoView.at(i).item, fromIndex, totalInsertionResult->sizeChangesAfterVisiblePos); + movingIntoView.at(i).item->transitionNextReposition(transitioner, QQuickItemViewTransitioner::MoveTransition, true); } } } @@ -2128,11 +2128,11 @@ bool QQuickItemViewPrivate::applyRemovalChange(const QQmlChangeSet::Change &remo Q_Q(QQuickItemView); bool visibleAffected = false; - if (visibleItems.count() && removal.index + removal.count > visibleItems.last()->index) { - if (removal.index > visibleItems.last()->index) + if (visibleItems.count() && removal.index + removal.count > visibleItems.constLast()->index) { + if (removal.index > visibleItems.constLast()->index) removeResult->countChangeAfterVisibleItems += removal.count; else - removeResult->countChangeAfterVisibleItems += ((removal.index + removal.count - 1) - visibleItems.last()->index); + removeResult->countChangeAfterVisibleItems += ((removal.index + removal.count - 1) - visibleItems.constLast()->index); } QList<FxViewItem*>::Iterator it = visibleItems.begin(); @@ -2222,10 +2222,11 @@ void QQuickItemViewPrivate::repositionFirstItem(FxViewItem *prevVisibleItemsFirs qreal moveBackwardsBy = 0; // shift visibleItems.first() relative to the number of added/removed items - if (visibleItems.first()->position() > prevViewPos) { + const auto pos = visibleItems.constFirst()->position(); + if (pos > prevViewPos) { moveForwardsBy = insertionResult->sizeChangesAfterVisiblePos; moveBackwardsBy = removalResult->sizeChangesAfterVisiblePos; - } else if (visibleItems.first()->position() < prevViewPos) { + } else if (pos < prevViewPos) { moveForwardsBy = removalResult->sizeChangesBeforeVisiblePos; moveBackwardsBy = insertionResult->sizeChangesBeforeVisiblePos; } @@ -2303,7 +2304,7 @@ bool QQuickItemViewPrivate::prepareNonVisibleItemTransition(FxViewItem *item, co void QQuickItemViewPrivate::viewItemTransitionFinished(QQuickItemViewTransitionableItem *item) { for (int i=0; i<releasePendingTransition.count(); i++) { - if (releasePendingTransition[i]->transitionableItem == item) { + if (releasePendingTransition.at(i)->transitionableItem == item) { releaseItem(releasePendingTransition.takeAt(i)); return; } @@ -2323,8 +2324,8 @@ FxViewItem *QQuickItemViewPrivate::createItem(int modelIndex, bool asynchronous) return 0; for (int i=0; i<releasePendingTransition.count(); i++) { - if (releasePendingTransition[i]->index == modelIndex - && !releasePendingTransition[i]->isPendingRemoval()) { + if (releasePendingTransition.at(i)->index == modelIndex + && !releasePendingTransition.at(i)->isPendingRemoval()) { releasePendingTransition[i]->releaseAfterTransition = false; return releasePendingTransition.takeAt(i); } |