diff options
Diffstat (limited to 'src/templates/qquicktumbler.cpp')
-rw-r--r-- | src/templates/qquicktumbler.cpp | 64 |
1 files changed, 35 insertions, 29 deletions
diff --git a/src/templates/qquicktumbler.cpp b/src/templates/qquicktumbler.cpp index c5b3f676..38447f6b 100644 --- a/src/templates/qquicktumbler.cpp +++ b/src/templates/qquicktumbler.cpp @@ -77,7 +77,7 @@ class QQuickTumblerPrivate : public QQuickControlPrivate, public QQuickItemChang public: QQuickTumblerPrivate() : - delegate(Q_NULLPTR), + delegate(nullptr), visibleItemCount(3) { } @@ -93,8 +93,8 @@ public: void _q_updateItemHeights(); void _q_updateItemWidths(); - void itemChildAdded(QQuickItem *, QQuickItem *) Q_DECL_OVERRIDE; - void itemChildRemoved(QQuickItem *, QQuickItem *) Q_DECL_OVERRIDE; + void itemChildAdded(QQuickItem *, QQuickItem *) override; + void itemChildRemoved(QQuickItem *, QQuickItem *) override; }; static QList<QQuickItem *> contentItemChildItems(QQuickItem *contentItem) @@ -126,7 +126,7 @@ namespace { else if (contentType == ListViewContentItem) return qobject_cast<QQuickFlickable*>(rootContentItem)->contentItem(); - return Q_NULLPTR; + return nullptr; } static inline ContentItemType contentItemType(QQuickItem *rootContentItem) @@ -158,7 +158,8 @@ void QQuickTumblerPrivate::_q_updateItemHeights() // which doesn't affect them, only their getters. Q_Q(const QQuickTumbler); const qreal itemHeight = delegateHeight(q); - foreach (QQuickItem *childItem, contentItemChildItems(contentItem)) + const auto items = contentItemChildItems(contentItem); + for (QQuickItem *childItem : items) childItem->setHeight(itemHeight); } @@ -166,7 +167,8 @@ void QQuickTumblerPrivate::_q_updateItemWidths() { Q_Q(const QQuickTumbler); const qreal availableWidth = q->availableWidth(); - foreach (QQuickItem *childItem, contentItemChildItems(contentItem)) + const auto items = contentItemChildItems(contentItem); + for (QQuickItem *childItem : items) childItem->setWidth(availableWidth); } @@ -211,10 +213,11 @@ QVariant QQuickTumbler::model() const void QQuickTumbler::setModel(const QVariant &model) { Q_D(QQuickTumbler); - if (model != d->model) { - d->model = model; - emit modelChanged(); - } + if (model == d->model) + return; + + d->model = model; + emit modelChanged(); } /*! @@ -255,7 +258,7 @@ void QQuickTumbler::setCurrentIndex(int currentIndex) QQuickItem *QQuickTumbler::currentItem() const { Q_D(const QQuickTumbler); - return d->contentItem ? d->contentItem->property("currentItem").value<QQuickItem*>() : Q_NULLPTR; + return d->contentItem ? d->contentItem->property("currentItem").value<QQuickItem*>() : nullptr; } /*! @@ -272,10 +275,11 @@ QQmlComponent *QQuickTumbler::delegate() const void QQuickTumbler::setDelegate(QQmlComponent *delegate) { Q_D(QQuickTumbler); - if (delegate != d->delegate) { - d->delegate = delegate; - emit delegateChanged(); - } + if (delegate == d->delegate) + return; + + d->delegate = delegate; + emit delegateChanged(); } /*! @@ -293,11 +297,12 @@ int QQuickTumbler::visibleItemCount() const void QQuickTumbler::setVisibleItemCount(int visibleItemCount) { Q_D(QQuickTumbler); - if (visibleItemCount != d->visibleItemCount) { - d->visibleItemCount = visibleItemCount; - d->_q_updateItemHeights(); - emit visibleItemCountChanged(); - } + if (visibleItemCount == d->visibleItemCount) + return; + + d->visibleItemCount = visibleItemCount; + d->_q_updateItemHeights(); + emit visibleItemCountChanged(); } QQuickTumblerAttached *QQuickTumbler::qmlAttachedProperties(QObject *object) @@ -305,7 +310,7 @@ QQuickTumblerAttached *QQuickTumbler::qmlAttachedProperties(QObject *object) QQuickItem *delegateItem = qobject_cast<QQuickItem *>(object); if (!delegateItem) { qWarning() << "Tumbler: attached properties of Tumbler must be accessed from within a delegate item"; - return Q_NULLPTR; + return nullptr; } return new QQuickTumblerAttached(delegateItem); @@ -398,7 +403,7 @@ class QQuickTumblerAttachedPrivate : public QObjectPrivate, public QQuickItemCha Q_DECLARE_PUBLIC(QQuickTumblerAttached) public: QQuickTumblerAttachedPrivate(QQuickItem *delegateItem) : - tumbler(Q_NULLPTR), + tumbler(nullptr), index(-1), displacement(1) { @@ -427,9 +432,9 @@ public: ~QQuickTumblerAttachedPrivate() { } - void itemGeometryChanged(QQuickItem *item, const QRectF &newGeometry, const QRectF &oldGeometry) Q_DECL_OVERRIDE; - void itemChildAdded(QQuickItem *, QQuickItem *) Q_DECL_OVERRIDE; - void itemChildRemoved(QQuickItem *, QQuickItem *) Q_DECL_OVERRIDE; + void itemGeometryChanged(QQuickItem *item, const QRectF &newGeometry, const QRectF &oldGeometry) override; + void itemChildAdded(QQuickItem *, QQuickItem *) override; + void itemChildRemoved(QQuickItem *, QQuickItem *) override; void _q_calculateDisplacement(); @@ -472,8 +477,9 @@ void QQuickTumblerAttachedPrivate::_q_calculateDisplacement() const int previousDisplacement = displacement; displacement = 0; + const int count = tumbler->count(); // This can happen in tests, so it may happen in normal usage too. - if (tumbler->count() == 0) + if (count == 0) return; ContentItemType contentType = contentItemType(tumbler->contentItem()); @@ -485,12 +491,12 @@ void QQuickTumblerAttachedPrivate::_q_calculateDisplacement() if (contentType == PathViewContentItem) { offset = tumbler->contentItem()->property("offset").toReal(); - displacement = tumbler->count() - index - offset; + displacement = count - index - offset; int halfVisibleItems = tumbler->visibleItemCount() / 2 + 1; if (displacement > halfVisibleItems) - displacement -= tumbler->count(); + displacement -= count; else if (displacement < -halfVisibleItems) - displacement += tumbler->count(); + displacement += count; } else { const qreal contentY = tumbler->contentItem()->property("contentY").toReal(); const qreal delegateH = delegateHeight(tumbler); |