diff options
Diffstat (limited to 'src/quicktemplates2/qquickscrollindicator.cpp')
-rw-r--r-- | src/quicktemplates2/qquickscrollindicator.cpp | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/src/quicktemplates2/qquickscrollindicator.cpp b/src/quicktemplates2/qquickscrollindicator.cpp index 7d93215d..66830ec1 100644 --- a/src/quicktemplates2/qquickscrollindicator.cpp +++ b/src/quicktemplates2/qquickscrollindicator.cpp @@ -303,7 +303,7 @@ public: void layoutHorizontal(bool move = true); void layoutVertical(bool move = true); - void itemGeometryChanged(QQuickItem *item, const QRectF &newGeometry, const QRectF &oldGeometry) override; + void itemGeometryChanged(QQuickItem *item, QQuickGeometryChange change, const QRectF &diff) override; void itemDestroyed(QQuickItem *item) override; QQuickFlickable *flickable; @@ -341,16 +341,24 @@ void QQuickScrollIndicatorAttachedPrivate::layoutVertical(bool move) vertical->setX(flickable->width() - vertical->width()); } -void QQuickScrollIndicatorAttachedPrivate::itemGeometryChanged(QQuickItem *item, const QRectF &newGeometry, const QRectF &oldGeometry) +void QQuickScrollIndicatorAttachedPrivate::itemGeometryChanged(QQuickItem *item, QQuickGeometryChange change, const QRectF &diff) { Q_UNUSED(item); - Q_UNUSED(newGeometry); + Q_UNUSED(change); if (horizontal && horizontal->height() > 0) { - bool move = qFuzzyIsNull(horizontal->y()) || qFuzzyCompare(horizontal->y(), oldGeometry.height() - horizontal->height()); +#ifdef QT_QUICK_NEW_GEOMETRY_CHANGED_HANDLING // TODO: correct/rename diff to oldGeometry + bool move = qFuzzyIsNull(horizontal->y()) || qFuzzyCompare(horizontal->y(), diff.height() - horizontal->height()); +#else + bool move = qFuzzyIsNull(horizontal->y()) || qFuzzyCompare(horizontal->y(), item->height() - diff.height() - horizontal->height()); +#endif layoutHorizontal(move); } if (vertical && vertical->width() > 0) { - bool move = qFuzzyIsNull(vertical->x()) || qFuzzyCompare(vertical->x(), oldGeometry.width() - vertical->width()); +#ifdef QT_QUICK_NEW_GEOMETRY_CHANGED_HANDLING // TODO: correct/rename diff to oldGeometry + bool move = qFuzzyIsNull(vertical->x()) || qFuzzyCompare(vertical->x(), diff.width() - vertical->width()); +#else + bool move = qFuzzyIsNull(vertical->x()) || qFuzzyCompare(vertical->x(), item->width() - diff.width() - vertical->width()); +#endif layoutVertical(move); } } @@ -369,7 +377,7 @@ QQuickScrollIndicatorAttached::QQuickScrollIndicatorAttached(QQuickFlickable *fl Q_D(QQuickScrollIndicatorAttached); if (flickable) { QQuickItemPrivate *p = QQuickItemPrivate::get(flickable); - p->updateOrAddGeometryChangeListener(d, QQuickItemPrivate::SizeChange); + p->updateOrAddGeometryChangeListener(d, QQuickGeometryChange::Size); } } |