diff options
Diffstat (limited to 'src/quick/items/qquickgridview.cpp')
-rw-r--r-- | src/quick/items/qquickgridview.cpp | 121 |
1 files changed, 60 insertions, 61 deletions
diff --git a/src/quick/items/qquickgridview.cpp b/src/quick/items/qquickgridview.cpp index 14ea43f123..e6a7a0acd0 100644 --- a/src/quick/items/qquickgridview.cpp +++ b/src/quick/items/qquickgridview.cpp @@ -66,19 +66,19 @@ public: { } - qreal position() const Q_DECL_OVERRIDE { + qreal position() const override { return rowPos(); } - qreal endPosition() const Q_DECL_OVERRIDE { + qreal endPosition() const override { return endRowPos(); } - qreal size() const Q_DECL_OVERRIDE { + qreal size() const override { return view->flow() == QQuickGridView::FlowLeftToRight ? view->cellHeight() : view->cellWidth(); } - qreal sectionSize() const Q_DECL_OVERRIDE { + qreal sectionSize() const override { return 0.0; } @@ -122,7 +122,7 @@ public: void setPosition(qreal col, qreal row, bool immediate = false) { moveTo(pointForPosition(col, row), immediate); } - bool contains(qreal x, qreal y) const Q_DECL_OVERRIDE { + bool contains(qreal x, qreal y) const override { return (x >= itemX() && x < itemX() + view->cellWidth() && y >= itemY() && y < itemY() + view->cellHeight()); } @@ -159,13 +159,13 @@ class QQuickGridViewPrivate : public QQuickItemViewPrivate Q_DECLARE_PUBLIC(QQuickGridView) public: - Qt::Orientation layoutOrientation() const Q_DECL_OVERRIDE; - bool isContentFlowReversed() const Q_DECL_OVERRIDE; + Qt::Orientation layoutOrientation() const override; + bool isContentFlowReversed() const override; - qreal positionAt(int index) const Q_DECL_OVERRIDE; - qreal endPositionAt(int index) const Q_DECL_OVERRIDE; - qreal originPosition() const Q_DECL_OVERRIDE; - qreal lastPosition() const Q_DECL_OVERRIDE; + qreal positionAt(int index) const override; + qreal endPositionAt(int index) const override; + qreal originPosition() const override; + qreal lastPosition() const override; qreal rowSize() const; qreal colSize() const; @@ -179,43 +179,43 @@ public: void resetColumns(); - bool addVisibleItems(qreal fillFrom, qreal fillTo, qreal bufferFrom, qreal bufferTo, bool doBuffer) Q_DECL_OVERRIDE; - bool removeNonVisibleItems(qreal bufferFrom, qreal bufferTo) Q_DECL_OVERRIDE; + bool addVisibleItems(qreal fillFrom, qreal fillTo, qreal bufferFrom, qreal bufferTo, bool doBuffer) override; + bool removeNonVisibleItems(qreal bufferFrom, qreal bufferTo) override; void removeItem(FxViewItem *item); - FxViewItem *newViewItem(int index, QQuickItem *item) Q_DECL_OVERRIDE; - void initializeViewItem(FxViewItem *item) Q_DECL_OVERRIDE; - void repositionItemAt(FxViewItem *item, int index, qreal sizeBuffer) Q_DECL_OVERRIDE; - void repositionPackageItemAt(QQuickItem *item, int index) Q_DECL_OVERRIDE; - void resetFirstItemPosition(qreal pos = 0.0) Q_DECL_OVERRIDE; - void adjustFirstItem(qreal forwards, qreal backwards, int changeBeforeVisible) Q_DECL_OVERRIDE; - - void createHighlight() Q_DECL_OVERRIDE; - void updateHighlight() Q_DECL_OVERRIDE; - void resetHighlightPosition() Q_DECL_OVERRIDE; - - void setPosition(qreal pos) Q_DECL_OVERRIDE; - void layoutVisibleItems(int fromModelIndex = 0) Q_DECL_OVERRIDE; - bool applyInsertionChange(const QQmlChangeSet::Change &insert, ChangeResult *changeResult, QList<FxViewItem *> *addedItems, QList<MovedItem> *movingIntoView) Q_DECL_OVERRIDE; - void translateAndTransitionItemsAfter(int afterModelIndex, const ChangeResult &insertionResult, const ChangeResult &removalResult) Q_DECL_OVERRIDE; - bool needsRefillForAddedOrRemovedIndex(int index) const Q_DECL_OVERRIDE; - - qreal headerSize() const Q_DECL_OVERRIDE; - qreal footerSize() const Q_DECL_OVERRIDE; - bool showHeaderForIndex(int index) const Q_DECL_OVERRIDE; - bool showFooterForIndex(int index) const Q_DECL_OVERRIDE; - void updateHeader() Q_DECL_OVERRIDE; - void updateFooter() Q_DECL_OVERRIDE; - - void changedVisibleIndex(int newIndex) Q_DECL_OVERRIDE; - void initializeCurrentItem() Q_DECL_OVERRIDE; - - void updateViewport() Q_DECL_OVERRIDE; - void fixupPosition() Q_DECL_OVERRIDE; - void fixup(AxisData &data, qreal minExtent, qreal maxExtent) Q_DECL_OVERRIDE; + FxViewItem *newViewItem(int index, QQuickItem *item) override; + void initializeViewItem(FxViewItem *item) override; + void repositionItemAt(FxViewItem *item, int index, qreal sizeBuffer) override; + void repositionPackageItemAt(QQuickItem *item, int index) override; + void resetFirstItemPosition(qreal pos = 0.0) override; + void adjustFirstItem(qreal forwards, qreal backwards, int changeBeforeVisible) override; + + void createHighlight() override; + void updateHighlight() override; + void resetHighlightPosition() override; + + void setPosition(qreal pos) override; + void layoutVisibleItems(int fromModelIndex = 0) override; + bool applyInsertionChange(const QQmlChangeSet::Change &insert, ChangeResult *changeResult, QList<FxViewItem *> *addedItems, QList<MovedItem> *movingIntoView) override; + void translateAndTransitionItemsAfter(int afterModelIndex, const ChangeResult &insertionResult, const ChangeResult &removalResult) override; + bool needsRefillForAddedOrRemovedIndex(int index) const override; + + qreal headerSize() const override; + qreal footerSize() const override; + bool showHeaderForIndex(int index) const override; + bool showFooterForIndex(int index) const override; + void updateHeader() override; + void updateFooter() override; + + void changedVisibleIndex(int newIndex) override; + void initializeCurrentItem() override; + + void updateViewport() override; + void fixupPosition() override; + void fixup(AxisData &data, qreal minExtent, qreal maxExtent) override; bool flick(QQuickItemViewPrivate::AxisData &data, qreal minExtent, qreal maxExtent, qreal vSize, - QQuickTimeLineCallback::Callback fixupCallback, qreal velocity) Q_DECL_OVERRIDE; + QQuickTimeLineCallback::Callback fixupCallback, qreal velocity) override; QQuickGridView::Flow flow; qreal cellWidth; @@ -383,8 +383,7 @@ qreal QQuickGridViewPrivate::snapPosAt(qreal pos) const FxViewItem *QQuickGridViewPrivate::snapItemAt(qreal pos) const { - for (int i = 0; i < visibleItems.count(); ++i) { - FxViewItem *item = visibleItems.at(i); + for (FxViewItem *item : visibleItems) { if (item->index == -1) continue; qreal itemTop = item->position(); @@ -397,16 +396,16 @@ FxViewItem *QQuickGridViewPrivate::snapItemAt(qreal pos) const int QQuickGridViewPrivate::snapIndex() const { int index = currentIndex; - for (int i = 0; i < visibleItems.count(); ++i) { - FxGridItemSG *item = static_cast<FxGridItemSG*>(visibleItems.at(i)); + for (FxViewItem *item : visibleItems) { if (item->index == -1) continue; qreal itemTop = item->position(); FxGridItemSG *hItem = static_cast<FxGridItemSG*>(highlight); if (itemTop >= hItem->rowPos()-rowSize()/2 && itemTop < hItem->rowPos()+rowSize()/2) { - index = item->index; - if (item->colPos() >= hItem->colPos()-colSize()/2 && item->colPos() < hItem->colPos()+colSize()/2) - return item->index; + FxGridItemSG *gridItem = static_cast<FxGridItemSG*>(item); + index = gridItem->index; + if (gridItem->colPos() >= hItem->colPos()-colSize()/2 && gridItem->colPos() < hItem->colPos()+colSize()/2) + return gridItem->index; } } return index; @@ -496,8 +495,8 @@ bool QQuickGridViewPrivate::addVisibleItems(qreal fillFrom, qreal fillTo, qreal // We've jumped more than a page. Estimate which items are now // visible and fill from there. int count = (fillFrom - (rowPos + rowSize())) / (rowSize()) * columns; - for (int i = 0; i < visibleItems.count(); ++i) - releaseItem(visibleItems.at(i)); + for (FxViewItem *item : qAsConst(visibleItems)) + releaseItem(item); visibleItems.clear(); modelIndex += count; if (modelIndex >= model->count()) @@ -2055,9 +2054,9 @@ void QQuickGridView::viewportMoved(Qt::Orientations orient) // Set visibility of items to eliminate cost of items outside the visible area. qreal from = d->isContentFlowReversed() ? -d->position()-d->displayMarginBeginning-d->size() : d->position()-d->displayMarginBeginning; qreal to = d->isContentFlowReversed() ? -d->position()+d->displayMarginEnd : d->position()+d->size()+d->displayMarginEnd; - for (int i = 0; i < d->visibleItems.count(); ++i) { - FxGridItemSG *item = static_cast<FxGridItemSG*>(d->visibleItems.at(i)); - QQuickItemPrivate::get(item->item)->setCulled(item->rowPos() + d->rowSize() < from || item->rowPos() > to); + for (FxViewItem *item : qAsConst(d->visibleItems)) { + FxGridItemSG *gridItem = static_cast<FxGridItemSG*>(item); + QQuickItemPrivate::get(gridItem->item)->setCulled(gridItem->rowPos() + d->rowSize() < from || gridItem->rowPos() > to); } if (d->currentItem) { FxGridItemSG *item = static_cast<FxGridItemSG*>(d->currentItem); @@ -2357,8 +2356,7 @@ bool QQuickGridViewPrivate::applyInsertionChange(const QQmlChangeSet::Change &ch if (modelIndex <= visibleIndex) { // Insert before visible items visibleIndex += count; - for (int i = 0; i < visibleItems.count(); ++i) { - FxViewItem *item = visibleItems.at(i); + for (FxViewItem *item : qAsConst(visibleItems)) { if (item->index != -1 && item->index >= modelIndex) item->index += count; } @@ -2391,8 +2389,7 @@ bool QQuickGridViewPrivate::applyInsertionChange(const QQmlChangeSet::Change &ch } // Update the indexes of the following visible items. - for (int i = 0; i < visibleItems.count(); ++i) { - FxViewItem *item = visibleItems.at(i); + for (FxViewItem *item : qAsConst(visibleItems)) { if (item->index != -1 && item->index >= modelIndex) { item->index += count; if (change.isMove()) @@ -2535,8 +2532,10 @@ void QQuickGridViewPrivate::translateAndTransitionItemsAfter(int afterModelIndex countItemsRemoved -= removalResult.countChangeAfterVisibleItems; - for (int i=markerItemIndex+1; i<visibleItems.count() && visibleItems.at(i)->position() < viewEndPos; i++) { + for (int i=markerItemIndex+1; i<visibleItems.count(); i++) { FxGridItemSG *gridItem = static_cast<FxGridItemSG *>(visibleItems.at(i)); + if (gridItem->position() >= viewEndPos) + break; if (!gridItem->transitionScheduledOrRunning()) { qreal origRowPos = gridItem->colPos(); qreal origColPos = gridItem->rowPos(); |