From 8991329a99cc8cd75fa9f02daa9dff570647220f Mon Sep 17 00:00:00 2001 From: Anton Kudryavtsev Date: Fri, 19 Aug 2016 16:42:54 +0300 Subject: QQuickItemView: Extract Method fxViewItemAtPosition() ... and reuse it in itemAt() and indexAt() Change-Id: I3e4682685227aa7c60d004152dffbc0ccaab6195 Reviewed-by: Robin Burchell Reviewed-by: Shawn Rutledge --- src/quick/items/qquickitemview.cpp | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) (limited to 'src/quick/items') diff --git a/src/quick/items/qquickitemview.cpp b/src/quick/items/qquickitemview.cpp index 8f6096a75f..11bd4cea67 100644 --- a/src/quick/items/qquickitemview.cpp +++ b/src/quick/items/qquickitemview.cpp @@ -1027,28 +1027,27 @@ void QQuickItemView::positionViewAtEnd() d->positionViewAtIndex(d->model->count(), End); } -int QQuickItemView::indexAt(qreal x, qreal y) const +static FxViewItem * fxViewItemAtPosition(const QList &items, qreal x, qreal y) { - Q_D(const QQuickItemView); - for (int i = 0; i < d->visibleItems.count(); ++i) { - const FxViewItem *item = d->visibleItems.at(i); + for (FxViewItem *item : items) { if (item->contains(x, y)) - return item->index; + return item; } + return nullptr; +} - return -1; +int QQuickItemView::indexAt(qreal x, qreal y) const +{ + Q_D(const QQuickItemView); + const FxViewItem *item = fxViewItemAtPosition(d->visibleItems, x, y); + return item ? item->index : -1; } QQuickItem *QQuickItemView::itemAt(qreal x, qreal y) const { Q_D(const QQuickItemView); - for (int i = 0; i < d->visibleItems.count(); ++i) { - const FxViewItem *item = d->visibleItems.at(i); - if (item->contains(x, y)) - return item->item; - } - - return 0; + const FxViewItem *item = fxViewItemAtPosition(d->visibleItems, x, y); + return item ? item->item : nullptr; } void QQuickItemView::forceLayout() -- cgit v1.2.3