aboutsummaryrefslogtreecommitdiffstats
path: root/src/quicktemplates2/qquickscrollbar.cpp
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2016-06-12 23:59:34 +0200
committerJ-P Nurmi <jpnurmi@qt.io>2016-06-13 11:58:30 +0000
commit16bf9ab0d10de1aad51dde2ab9be7eb893b0b123 (patch)
treef637304567bfecdf169519fe637f0621fb6ac684 /src/quicktemplates2/qquickscrollbar.cpp
parentff490e85bbb5d1d32532189b8acb63b02a2ac850 (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.cpp12
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);