diff options
author | Anton Kudryavtsev <a.kudryavtsev@netris.ru> | 2016-08-19 16:42:54 +0300 |
---|---|---|
committer | Anton Kudryavtsev <a.kudryavtsev@netris.ru> | 2016-10-04 16:03:38 +0000 |
commit | 8991329a99cc8cd75fa9f02daa9dff570647220f (patch) | |
tree | 3dcb9212bb38d2e5bdb1b8cac252343383283f06 /src/quick/items/qquickitemview.cpp | |
parent | 0b9e753597d23d8766ca85626795e538c859af66 (diff) |
QQuickItemView: Extract Method fxViewItemAtPosition()
... and reuse it in itemAt() and indexAt()
Change-Id: I3e4682685227aa7c60d004152dffbc0ccaab6195
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Diffstat (limited to 'src/quick/items/qquickitemview.cpp')
-rw-r--r-- | src/quick/items/qquickitemview.cpp | 25 |
1 files changed, 12 insertions, 13 deletions
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<FxViewItem *> &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() |