aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2016-06-14 21:42:20 +0200
committerJ-P Nurmi <jpnurmi@qt.io>2016-06-14 21:42:20 +0200
commitbf82b95088f552a5f62d333662c7a9202d293359 (patch)
treecd25b2d91c3d98733920f7a8561d41c89731975b /src
parent221c3ce846e5a6167aa0b2d356c23d5b9c7e32cb (diff)
parent73e722a85fbf0675938023b0207d7daac93b085a (diff)
Merge remote-tracking branch 'origin/5.7' into dev
Conflicts: src/quicktemplates2/qquickslider.cpp Change-Id: Idefd7b77b1937d423ee2db5064ff09c36b240ef0
Diffstat (limited to 'src')
-rw-r--r--src/imports/controls/RangeSlider.qml10
-rw-r--r--src/imports/controls/Slider.qml6
-rw-r--r--src/imports/controls/doc/images/qtquickcontrols2-applicationwindow-wireframe.pngbin1795 -> 5696 bytes
-rw-r--r--src/imports/controls/doc/images/qtquickcontrols2-control.pngbin9850 -> 34588 bytes
-rw-r--r--src/imports/controls/material/Frame.qml8
-rw-r--r--src/imports/controls/material/GroupBox.qml8
-rw-r--r--src/imports/controls/material/Pane.qml1
-rw-r--r--src/imports/controls/material/RangeSlider.qml18
-rw-r--r--src/imports/controls/material/ScrollBar.qml3
-rw-r--r--src/imports/controls/material/Slider.qml14
-rw-r--r--src/imports/controls/material/TabBar.qml7
-rw-r--r--src/imports/controls/universal/RangeSlider.qml10
-rw-r--r--src/imports/controls/universal/Slider.qml6
-rw-r--r--src/quicktemplates2/qquickscrollbar.cpp34
-rw-r--r--src/quicktemplates2/qquickscrollindicator.cpp22
-rw-r--r--src/quicktemplates2/qquickslider.cpp20
16 files changed, 102 insertions, 65 deletions
diff --git a/src/imports/controls/RangeSlider.qml b/src/imports/controls/RangeSlider.qml
index 8d285298..7353e2b5 100644
--- a/src/imports/controls/RangeSlider.qml
+++ b/src/imports/controls/RangeSlider.qml
@@ -41,13 +41,11 @@ T.RangeSlider {
id: control
implicitWidth: Math.max(background ? background.implicitWidth : 0,
- Math.max(background ? background.implicitWidth : 0,
- first.handle ? first.handle.implicitWidth : 0,
- second.handle ? second.handle.implicitWidth : 0) + leftPadding + rightPadding)
+ Math.max(first.handle ? first.handle.implicitWidth : 0,
+ second.handle ? second.handle.implicitWidth : 0) + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0,
- Math.max(background ? background.implicitHeight : 0,
- first.handle ? first.handle.implicitHeight : 0,
- second.handle ? second.handle.implicitHeight : 0) + topPadding + bottomPadding)
+ Math.max(first.handle ? first.handle.implicitHeight : 0,
+ second.handle ? second.handle.implicitHeight : 0) + topPadding + bottomPadding)
padding: 6
diff --git a/src/imports/controls/Slider.qml b/src/imports/controls/Slider.qml
index a44a6c80..896dbca0 100644
--- a/src/imports/controls/Slider.qml
+++ b/src/imports/controls/Slider.qml
@@ -41,11 +41,9 @@ T.Slider {
id: control
implicitWidth: Math.max(background ? background.implicitWidth : 0,
- Math.max(background ? background.implicitWidth : 0,
- handle ? handle.implicitWidth : 0) + leftPadding + rightPadding)
+ (handle ? handle.implicitWidth : 0) + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0,
- Math.max(background ? background.implicitHeight : 0,
- handle ? handle.implicitHeight : 0) + topPadding + bottomPadding)
+ (handle ? handle.implicitHeight : 0) + topPadding + bottomPadding)
padding: 6
diff --git a/src/imports/controls/doc/images/qtquickcontrols2-applicationwindow-wireframe.png b/src/imports/controls/doc/images/qtquickcontrols2-applicationwindow-wireframe.png
index f612c243..d9c8b261 100644
--- a/src/imports/controls/doc/images/qtquickcontrols2-applicationwindow-wireframe.png
+++ b/src/imports/controls/doc/images/qtquickcontrols2-applicationwindow-wireframe.png
Binary files differ
diff --git a/src/imports/controls/doc/images/qtquickcontrols2-control.png b/src/imports/controls/doc/images/qtquickcontrols2-control.png
index eb5ee349..28fcb742 100644
--- a/src/imports/controls/doc/images/qtquickcontrols2-control.png
+++ b/src/imports/controls/doc/images/qtquickcontrols2-control.png
Binary files differ
diff --git a/src/imports/controls/material/Frame.qml b/src/imports/controls/material/Frame.qml
index 5fba3210..c7a2935a 100644
--- a/src/imports/controls/material/Frame.qml
+++ b/src/imports/controls/material/Frame.qml
@@ -37,6 +37,7 @@
import QtQuick 2.6
import QtQuick.Templates 2.0 as T
import QtQuick.Controls.Material 2.0
+import QtQuick.Controls.Material.impl 2.0
T.Frame {
id: control
@@ -53,7 +54,12 @@ T.Frame {
background: Rectangle {
radius: 3
- color: "transparent"
+ color: control.Material.elevation > 0 ? control.Material.backgroundColor : "transparent"
border.color: control.Material.frameColor
+
+ layer.enabled: control.enabled && control.Material.elevation > 0
+ layer.effect: ElevationEffect {
+ elevation: control.Material.elevation
+ }
}
}
diff --git a/src/imports/controls/material/GroupBox.qml b/src/imports/controls/material/GroupBox.qml
index 72764a25..48380414 100644
--- a/src/imports/controls/material/GroupBox.qml
+++ b/src/imports/controls/material/GroupBox.qml
@@ -37,6 +37,7 @@
import QtQuick 2.6
import QtQuick.Templates 2.0 as T
import QtQuick.Controls.Material 2.0
+import QtQuick.Controls.Material.impl 2.0
T.GroupBox {
id: control
@@ -73,7 +74,12 @@ T.GroupBox {
height: parent.height - control.topPadding + control.padding
radius: 3
- color: "transparent"
+ color: control.Material.elevation > 0 ? control.Material.backgroundColor : "transparent"
border.color: control.Material.frameColor
+
+ layer.enabled: control.enabled && control.Material.elevation > 0
+ layer.effect: ElevationEffect {
+ elevation: control.Material.elevation
+ }
}
}
diff --git a/src/imports/controls/material/Pane.qml b/src/imports/controls/material/Pane.qml
index 0ddd5cf4..6a02b25a 100644
--- a/src/imports/controls/material/Pane.qml
+++ b/src/imports/controls/material/Pane.qml
@@ -54,6 +54,7 @@ T.Pane {
background: Rectangle {
color: control.Material.backgroundColor
+ radius: control.Material.elevation > 0 ? 3 : 0
layer.enabled: control.enabled && control.Material.elevation > 0
layer.effect: ElevationEffect {
diff --git a/src/imports/controls/material/RangeSlider.qml b/src/imports/controls/material/RangeSlider.qml
index f103fb27..dc2c25fa 100644
--- a/src/imports/controls/material/RangeSlider.qml
+++ b/src/imports/controls/material/RangeSlider.qml
@@ -43,13 +43,11 @@ T.RangeSlider {
id: control
implicitWidth: Math.max(background ? background.implicitWidth : 0,
- Math.max(background ? background.implicitWidth : 0,
- first.handle ? first.handle.implicitWidth : 0,
- second.handle ? second.handle.implicitWidth : 0) + leftPadding + rightPadding)
+ Math.max(first.handle ? first.handle.implicitWidth : 0,
+ second.handle ? second.handle.implicitWidth : 0) + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0,
- Math.max(background ? background.implicitHeight : 0,
- first.handle ? first.handle.implicitHeight : 0,
- second.handle ? second.handle.implicitHeight : 0) + topPadding + bottomPadding)
+ Math.max(first.handle ? first.handle.implicitHeight : 0,
+ second.handle ? second.handle.implicitHeight : 0) + topPadding + bottomPadding)
padding: 6
@@ -72,10 +70,10 @@ T.RangeSlider {
background: Rectangle {
x: control.leftPadding + (horizontal ? 0 : (control.availableWidth - width) / 2)
y: control.topPadding + (horizontal ? (control.availableHeight - height) / 2 : 0)
- implicitWidth: horizontal ? 200 : 1
- implicitHeight: horizontal ? 1 : 200
- width: horizontal ? control.availableWidth : implicitWidth
- height: horizontal ? implicitHeight : control.availableHeight
+ implicitWidth: horizontal ? 200 : 48
+ implicitHeight: horizontal ? 48 : 200
+ width: horizontal ? control.availableWidth : 1
+ height: horizontal ? 1 : control.availableHeight
color: control.Material.primaryTextColor
scale: horizontal && control.mirrored ? -1 : 1
diff --git a/src/imports/controls/material/ScrollBar.qml b/src/imports/controls/material/ScrollBar.qml
index b99e12de..84f2d33a 100644
--- a/src/imports/controls/material/ScrollBar.qml
+++ b/src/imports/controls/material/ScrollBar.qml
@@ -47,6 +47,9 @@ T.ScrollBar {
contentItem.implicitHeight + topPadding + bottomPadding)
padding: 2
+ topPadding: padding + (control.orientation === Qt.Horizontal ? 12 : 0)
+ leftPadding: padding + (control.orientation === Qt.Vertical && !control.mirrored ? 12 : 0)
+ rightPadding: padding + (control.orientation === Qt.Vertical && control.mirrored ? 12 : 0)
contentItem: Rectangle {
id: handle
diff --git a/src/imports/controls/material/Slider.qml b/src/imports/controls/material/Slider.qml
index a473db37..15c8edb2 100644
--- a/src/imports/controls/material/Slider.qml
+++ b/src/imports/controls/material/Slider.qml
@@ -43,11 +43,9 @@ T.Slider {
id: control
implicitWidth: Math.max(background ? background.implicitWidth : 0,
- Math.max(background ? background.implicitWidth : 0,
- handle ? handle.implicitWidth : 0) + leftPadding + rightPadding)
+ (handle ? handle.implicitWidth : 0) + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0,
- Math.max(background ? background.implicitHeight : 0,
- handle ? handle.implicitHeight : 0) + topPadding + bottomPadding)
+ (handle ? handle.implicitHeight : 0) + topPadding + bottomPadding)
padding: 6
@@ -62,10 +60,10 @@ T.Slider {
background: Rectangle {
x: control.leftPadding + (horizontal ? 0 : (control.availableWidth - width) / 2)
y: control.topPadding + (horizontal ? (control.availableHeight - height) / 2 : 0)
- implicitWidth: horizontal ? 200 : 1
- implicitHeight: horizontal ? 1 : 200
- width: horizontal ? control.availableWidth : implicitWidth
- height: horizontal ? implicitHeight : control.availableHeight
+ implicitWidth: horizontal ? 200 : 48
+ implicitHeight: horizontal ? 48 : 200
+ width: horizontal ? control.availableWidth : 1
+ height: horizontal ? 1 : control.availableHeight
color: control.Material.primaryTextColor
scale: horizontal && control.mirrored ? -1 : 1
diff --git a/src/imports/controls/material/TabBar.qml b/src/imports/controls/material/TabBar.qml
index 57c9d432..22a80efa 100644
--- a/src/imports/controls/material/TabBar.qml
+++ b/src/imports/controls/material/TabBar.qml
@@ -37,6 +37,7 @@
import QtQuick 2.6
import QtQuick.Templates 2.0 as T
import QtQuick.Controls.Material 2.0
+import QtQuick.Controls.Material.impl 2.0
T.TabBar {
id: control
@@ -76,5 +77,11 @@ T.TabBar {
background: Rectangle {
color: control.Material.backgroundColor
+
+ layer.enabled: control.Material.elevation > 0
+ layer.effect: ElevationEffect {
+ elevation: control.Material.elevation
+ fullWidth: true
+ }
}
}
diff --git a/src/imports/controls/universal/RangeSlider.qml b/src/imports/controls/universal/RangeSlider.qml
index fd220521..ec2ff7c8 100644
--- a/src/imports/controls/universal/RangeSlider.qml
+++ b/src/imports/controls/universal/RangeSlider.qml
@@ -42,13 +42,11 @@ T.RangeSlider {
id: control
implicitWidth: Math.max(background ? background.implicitWidth : 0,
- Math.max(background ? background.implicitWidth : 0,
- first.handle ? first.handle.implicitWidth : 0,
- second.handle ? second.handle.implicitWidth : 0) + leftPadding + rightPadding)
+ Math.max(first.handle ? first.handle.implicitWidth : 0,
+ second.handle ? second.handle.implicitWidth : 0) + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0,
- Math.max(background ? background.implicitHeight : 0,
- first.handle ? first.handle.implicitHeight : 0,
- second.handle ? second.handle.implicitHeight : 0) + topPadding + bottomPadding)
+ Math.max(first.handle ? first.handle.implicitHeight : 0,
+ second.handle ? second.handle.implicitHeight : 0) + topPadding + bottomPadding)
padding: 6
diff --git a/src/imports/controls/universal/Slider.qml b/src/imports/controls/universal/Slider.qml
index 5aa336ee..baf91211 100644
--- a/src/imports/controls/universal/Slider.qml
+++ b/src/imports/controls/universal/Slider.qml
@@ -42,11 +42,9 @@ T.Slider {
id: control
implicitWidth: Math.max(background ? background.implicitWidth : 0,
- Math.max(background ? background.implicitWidth : 0,
- handle ? handle.implicitWidth : 0) + leftPadding + rightPadding)
+ (handle ? handle.implicitWidth : 0) + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0,
- Math.max(background ? background.implicitHeight : 0,
- handle ? handle.implicitHeight : 0) + topPadding + bottomPadding)
+ (handle ? handle.implicitHeight : 0) + topPadding + bottomPadding)
padding: 6
diff --git a/src/quicktemplates2/qquickscrollbar.cpp b/src/quicktemplates2/qquickscrollbar.cpp
index 40116bf9..c2506c3c 100644
--- a/src/quicktemplates2/qquickscrollbar.cpp
+++ b/src/quicktemplates2/qquickscrollbar.cpp
@@ -400,11 +400,13 @@ public:
void activateVertical();
void scrollHorizontal();
void scrollVertical();
+ void mirrorVertical();
void layoutHorizontal(bool move = true);
void layoutVertical(bool move = true);
void itemGeometryChanged(QQuickItem *item, const QRectF &newGeometry, const QRectF &oldGeometry) override;
+ void itemDestroyed(QQuickItem *item) override;
QQuickFlickable *flickable;
QQuickScrollBar *horizontal;
@@ -453,6 +455,11 @@ void QQuickScrollBarAttachedPrivate::scrollVertical()
flickable->setContentY(cy);
}
+void QQuickScrollBarAttachedPrivate::mirrorVertical()
+{
+ layoutVertical(true);
+}
+
void QQuickScrollBarAttachedPrivate::layoutHorizontal(bool move)
{
Q_ASSERT(horizontal && flickable);
@@ -465,8 +472,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)
@@ -483,6 +490,14 @@ void QQuickScrollBarAttachedPrivate::itemGeometryChanged(QQuickItem *item, const
}
}
+void QQuickScrollBarAttachedPrivate::itemDestroyed(QQuickItem *item)
+{
+ if (item == horizontal)
+ horizontal = nullptr;
+ if (item == vertical)
+ vertical = nullptr;
+}
+
QQuickScrollBarAttached::QQuickScrollBarAttached(QQuickFlickable *flickable) :
QObject(*(new QQuickScrollBarAttachedPrivate(flickable)), flickable)
{
@@ -498,9 +513,10 @@ QQuickScrollBarAttached::~QQuickScrollBarAttached()
Q_D(QQuickScrollBarAttached);
if (d->flickable) {
if (d->horizontal)
- QQuickItemPrivate::get(d->horizontal)->removeItemChangeListener(d, QQuickItemPrivate::Geometry);
+ QQuickItemPrivate::get(d->horizontal)->removeItemChangeListener(d, QQuickItemPrivate::Geometry | QQuickItemPrivate::Destroyed);
if (d->vertical)
- QQuickItemPrivate::get(d->vertical)->removeItemChangeListener(d, QQuickItemPrivate::Geometry);
+ QQuickItemPrivate::get(d->vertical)->removeItemChangeListener(d, QQuickItemPrivate::Geometry | QQuickItemPrivate::Destroyed);
+ QQuickItemPrivate::get(d->flickable)->removeItemChangeListener(d, QQuickItemPrivate::Geometry);
}
}
@@ -529,7 +545,7 @@ void QQuickScrollBarAttached::setHorizontal(QQuickScrollBar *horizontal)
return;
if (d->horizontal && d->flickable) {
- QQuickItemPrivate::get(d->horizontal)->removeItemChangeListener(d, QQuickItemPrivate::Geometry);
+ QQuickItemPrivate::get(d->horizontal)->removeItemChangeListener(d, QQuickItemPrivate::Geometry | QQuickItemPrivate::Destroyed);
QObjectPrivate::disconnect(d->horizontal, &QQuickScrollBar::positionChanged, d, &QQuickScrollBarAttachedPrivate::scrollHorizontal);
QObjectPrivate::disconnect(d->flickable, &QQuickFlickable::movingHorizontallyChanged, d, &QQuickScrollBarAttachedPrivate::activateHorizontal);
@@ -546,7 +562,7 @@ void QQuickScrollBarAttached::setHorizontal(QQuickScrollBar *horizontal)
horizontal->setParentItem(d->flickable);
horizontal->setOrientation(Qt::Horizontal);
- QQuickItemPrivate::get(horizontal)->updateOrAddGeometryChangeListener(d, QQuickItemPrivate::SizeChange);
+ QQuickItemPrivate::get(horizontal)->addItemChangeListener(d, QQuickItemPrivate::Geometry | QQuickItemPrivate::Destroyed);
QObjectPrivate::connect(horizontal, &QQuickScrollBar::positionChanged, d, &QQuickScrollBarAttachedPrivate::scrollHorizontal);
QObjectPrivate::connect(d->flickable, &QQuickFlickable::movingHorizontallyChanged, d, &QQuickScrollBarAttachedPrivate::activateHorizontal);
@@ -587,7 +603,8 @@ void QQuickScrollBarAttached::setVertical(QQuickScrollBar *vertical)
return;
if (d->vertical && d->flickable) {
- QQuickItemPrivate::get(d->vertical)->removeItemChangeListener(d, QQuickItemPrivate::Geometry);
+ QQuickItemPrivate::get(d->vertical)->removeItemChangeListener(d, QQuickItemPrivate::Geometry | QQuickItemPrivate::Destroyed);
+ 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);
@@ -604,7 +621,8 @@ void QQuickScrollBarAttached::setVertical(QQuickScrollBar *vertical)
vertical->setParentItem(d->flickable);
vertical->setOrientation(Qt::Vertical);
- QQuickItemPrivate::get(vertical)->updateOrAddGeometryChangeListener(d, QQuickItemPrivate::SizeChange);
+ QQuickItemPrivate::get(vertical)->addItemChangeListener(d, QQuickItemPrivate::Geometry | QQuickItemPrivate::Destroyed);
+ 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);
diff --git a/src/quicktemplates2/qquickscrollindicator.cpp b/src/quicktemplates2/qquickscrollindicator.cpp
index bc53768c..55e86d87 100644
--- a/src/quicktemplates2/qquickscrollindicator.cpp
+++ b/src/quicktemplates2/qquickscrollindicator.cpp
@@ -243,6 +243,7 @@ public:
void layoutVertical(bool move = true);
void itemGeometryChanged(QQuickItem *item, const QRectF &newGeometry, const QRectF &oldGeometry) override;
+ void itemDestroyed(QQuickItem *item) override;
QQuickFlickable *flickable;
QQuickScrollIndicator *horizontal;
@@ -289,6 +290,14 @@ void QQuickScrollIndicatorAttachedPrivate::itemGeometryChanged(QQuickItem *item,
}
}
+void QQuickScrollIndicatorAttachedPrivate::itemDestroyed(QQuickItem *item)
+{
+ if (item == horizontal)
+ horizontal = nullptr;
+ if (item == vertical)
+ vertical = nullptr;
+}
+
QQuickScrollIndicatorAttached::QQuickScrollIndicatorAttached(QQuickFlickable *flickable) :
QObject(*(new QQuickScrollIndicatorAttachedPrivate(flickable)), flickable)
{
@@ -304,9 +313,10 @@ QQuickScrollIndicatorAttached::~QQuickScrollIndicatorAttached()
Q_D(QQuickScrollIndicatorAttached);
if (d->flickable) {
if (d->horizontal)
- QQuickItemPrivate::get(d->horizontal)->removeItemChangeListener(d, QQuickItemPrivate::Geometry);
+ QQuickItemPrivate::get(d->horizontal)->removeItemChangeListener(d, QQuickItemPrivate::Geometry | QQuickItemPrivate::Destroyed);
if (d->vertical)
- QQuickItemPrivate::get(d->vertical)->removeItemChangeListener(d, QQuickItemPrivate::Geometry);
+ QQuickItemPrivate::get(d->vertical)->removeItemChangeListener(d,QQuickItemPrivate::Geometry | QQuickItemPrivate::Destroyed);
+ QQuickItemPrivate::get(d->flickable)->removeItemChangeListener(d, QQuickItemPrivate::Geometry);
}
}
@@ -335,7 +345,7 @@ void QQuickScrollIndicatorAttached::setHorizontal(QQuickScrollIndicator *horizon
return;
if (d->horizontal && d->flickable) {
- QQuickItemPrivate::get(d->horizontal)->removeItemChangeListener(d, QQuickItemPrivate::Geometry);
+ QQuickItemPrivate::get(d->horizontal)->removeItemChangeListener(d, QQuickItemPrivate::Geometry | QQuickItemPrivate::Destroyed);
QObjectPrivate::disconnect(d->flickable, &QQuickFlickable::movingHorizontallyChanged, d, &QQuickScrollIndicatorAttachedPrivate::activateHorizontal);
// TODO: export QQuickFlickableVisibleArea
@@ -351,7 +361,7 @@ void QQuickScrollIndicatorAttached::setHorizontal(QQuickScrollIndicator *horizon
horizontal->setParentItem(d->flickable);
horizontal->setOrientation(Qt::Horizontal);
- QQuickItemPrivate::get(horizontal)->updateOrAddGeometryChangeListener(d, QQuickItemPrivate::SizeChange);
+ QQuickItemPrivate::get(horizontal)->addItemChangeListener(d, QQuickItemPrivate::Geometry | QQuickItemPrivate::Destroyed);
QObjectPrivate::connect(d->flickable, &QQuickFlickable::movingHorizontallyChanged, d, &QQuickScrollIndicatorAttachedPrivate::activateHorizontal);
// TODO: export QQuickFlickableVisibleArea
@@ -391,7 +401,7 @@ void QQuickScrollIndicatorAttached::setVertical(QQuickScrollIndicator *vertical)
return;
if (d->vertical && d->flickable) {
- QQuickItemPrivate::get(d->vertical)->removeItemChangeListener(d, QQuickItemPrivate::Geometry);
+ QQuickItemPrivate::get(d->vertical)->removeItemChangeListener(d, QQuickItemPrivate::Geometry | QQuickItemPrivate::Destroyed);
QObjectPrivate::disconnect(d->flickable, &QQuickFlickable::movingVerticallyChanged, d, &QQuickScrollIndicatorAttachedPrivate::activateVertical);
// TODO: export QQuickFlickableVisibleArea
@@ -407,7 +417,7 @@ void QQuickScrollIndicatorAttached::setVertical(QQuickScrollIndicator *vertical)
vertical->setParentItem(d->flickable);
vertical->setOrientation(Qt::Vertical);
- QQuickItemPrivate::get(vertical)->updateOrAddGeometryChangeListener(d, QQuickItemPrivate::SizeChange);
+ QQuickItemPrivate::get(vertical)->addItemChangeListener(d, QQuickItemPrivate::Geometry | QQuickItemPrivate::Destroyed);
QObjectPrivate::connect(d->flickable, &QQuickFlickable::movingVerticallyChanged, d, &QQuickScrollIndicatorAttachedPrivate::activateVertical);
// TODO: export QQuickFlickableVisibleArea
diff --git a/src/quicktemplates2/qquickslider.cpp b/src/quicktemplates2/qquickslider.cpp
index e792b6a5..d54a47e5 100644
--- a/src/quicktemplates2/qquickslider.cpp
+++ b/src/quicktemplates2/qquickslider.cpp
@@ -530,17 +530,15 @@ void QQuickSlider::mouseReleaseEvent(QMouseEvent *event)
Q_D(QQuickSlider);
QQuickControl::mouseReleaseEvent(event);
d->pressPoint = QPoint();
- if (keepMouseGrab()) {
- qreal pos = d->positionAt(event->pos());
- if (d->snapMode != NoSnap)
- pos = d->snapPosition(pos);
- qreal val = valueAt(pos);
- if (!qFuzzyCompare(val, d->value))
- setValue(val);
- else if (d->snapMode != NoSnap)
- d->setPosition(pos);
- setKeepMouseGrab(false);
- }
+ qreal pos = d->positionAt(event->pos());
+ if (d->snapMode != NoSnap)
+ pos = d->snapPosition(pos);
+ qreal val = valueAt(pos);
+ if (!qFuzzyCompare(val, d->value))
+ setValue(val);
+ else if (d->snapMode != NoSnap)
+ d->setPosition(pos);
+ setKeepMouseGrab(false);
setPressed(false);
}