diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2016-06-12 23:59:34 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2016-06-13 11:58:30 +0000 |
commit | 16bf9ab0d10de1aad51dde2ab9be7eb893b0b123 (patch) | |
tree | f637304567bfecdf169519fe637f0621fb6ac684 /src/quicktemplates2/qquickscrollbar.cpp | |
parent | ff490e85bbb5d1d32532189b8acb63b02a2ac850 (diff) |
QQuickScrollBar: fix layouting of mirrored vertical scrollbar
Change-Id: I19630dc54f275ba2f8034c1ef45e5243586a8d23
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src/quicktemplates2/qquickscrollbar.cpp')
-rw-r--r-- | src/quicktemplates2/qquickscrollbar.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/quicktemplates2/qquickscrollbar.cpp b/src/quicktemplates2/qquickscrollbar.cpp index 40116bf9..df2823f3 100644 --- a/src/quicktemplates2/qquickscrollbar.cpp +++ b/src/quicktemplates2/qquickscrollbar.cpp @@ -400,6 +400,7 @@ public: void activateVertical(); void scrollHorizontal(); void scrollVertical(); + void mirrorVertical(); void layoutHorizontal(bool move = true); void layoutVertical(bool move = true); @@ -453,6 +454,11 @@ void QQuickScrollBarAttachedPrivate::scrollVertical() flickable->setContentY(cy); } +void QQuickScrollBarAttachedPrivate::mirrorVertical() +{ + layoutVertical(true); +} + void QQuickScrollBarAttachedPrivate::layoutHorizontal(bool move) { Q_ASSERT(horizontal && flickable); @@ -465,8 +471,8 @@ void QQuickScrollBarAttachedPrivate::layoutVertical(bool move) { Q_ASSERT(vertical && flickable); vertical->setHeight(flickable->height()); - if (move && !QQuickItemPrivate::get(vertical)->isMirrored()) - vertical->setX(flickable->width() - vertical->width()); + if (move) + vertical->setX(vertical->isMirrored() ? 0 : flickable->width() - vertical->width()); } void QQuickScrollBarAttachedPrivate::itemGeometryChanged(QQuickItem *item, const QRectF &newGeometry, const QRectF &oldGeometry) @@ -588,6 +594,7 @@ void QQuickScrollBarAttached::setVertical(QQuickScrollBar *vertical) if (d->vertical && d->flickable) { QQuickItemPrivate::get(d->vertical)->removeItemChangeListener(d, QQuickItemPrivate::Geometry); + QObjectPrivate::disconnect(d->vertical, &QQuickScrollBar::mirroredChanged, d, &QQuickScrollBarAttachedPrivate::mirrorVertical); QObjectPrivate::disconnect(d->vertical, &QQuickScrollBar::positionChanged, d, &QQuickScrollBarAttachedPrivate::scrollVertical); QObjectPrivate::disconnect(d->flickable, &QQuickFlickable::movingVerticallyChanged, d, &QQuickScrollBarAttachedPrivate::activateVertical); @@ -605,6 +612,7 @@ void QQuickScrollBarAttached::setVertical(QQuickScrollBar *vertical) vertical->setOrientation(Qt::Vertical); QQuickItemPrivate::get(vertical)->updateOrAddGeometryChangeListener(d, QQuickItemPrivate::SizeChange); + QObjectPrivate::connect(vertical, &QQuickScrollBar::mirroredChanged, d, &QQuickScrollBarAttachedPrivate::mirrorVertical); QObjectPrivate::connect(vertical, &QQuickScrollBar::positionChanged, d, &QQuickScrollBarAttachedPrivate::scrollVertical); QObjectPrivate::connect(d->flickable, &QQuickFlickable::movingVerticallyChanged, d, &QQuickScrollBarAttachedPrivate::activateVertical); |