summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@digia.com>2013-10-18 15:30:27 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-10-23 12:17:01 +0200
commita8fdfbbbf7962eb5ca5bbd078bc36ba52f06a21b (patch)
tree93130e55eb479804c980c69de2719c83764e53b9
parent6ec67932271d3a20e76587bc040dc7b76e16bb57 (diff)
downloadqtquickcontrols-a8fdfbbbf7962eb5ca5bbd078bc36ba52f06a21b.tar.gz
qtquickcontrols-a8fdfbbbf7962eb5ca5bbd078bc36ba52f06a21b.tar.bz2
qtquickcontrols-a8fdfbbbf7962eb5ca5bbd078bc36ba52f06a21b.zip
Fix custom styled transient scrollbars
Change-Id: I41d86f2f27e4250361c4fad21dd37995e5cbbc3d Reviewed-by: Caroline Chao <caroline.chao@digia.com>
-rw-r--r--examples/quick/controls/touch/content/ListPage.qml82
-rw-r--r--examples/quick/controls/touch/main.qml4
-rw-r--r--examples/quick/controls/touch/resources.qrc1
-rw-r--r--examples/quick/controls/touch/touch.pro1
-rw-r--r--src/controls/Styles/Base/ScrollViewStyle.qml13
5 files changed, 90 insertions, 11 deletions
diff --git a/examples/quick/controls/touch/content/ListPage.qml b/examples/quick/controls/touch/content/ListPage.qml
new file mode 100644
index 00000000..1edd17d0
--- /dev/null
+++ b/examples/quick/controls/touch/content/ListPage.qml
@@ -0,0 +1,82 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Quick Controls module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+
+
+
+import QtQuick 2.1
+import QtQuick.Controls 1.1
+import QtQuick.Controls.Styles 1.1
+
+ScrollView {
+ width: parent.width
+ height: parent.height
+
+ flickableItem.interactive: true
+
+ ListView {
+ anchors.fill: parent
+ model: 100
+ delegate: AndroidDelegate {
+ text: "Item #" + modelData
+ }
+ }
+
+ style: ScrollViewStyle {
+ transientScrollBars: true
+ handle: Item {
+ implicitWidth: 14
+ implicitHeight: 26
+ Rectangle {
+ color: "#424246"
+ anchors.fill: parent
+ anchors.topMargin: 6
+ anchors.leftMargin: 4
+ anchors.rightMargin: 4
+ anchors.bottomMargin: 6
+ }
+ }
+ scrollBarBackground: Item {
+ implicitWidth: 14
+ implicitHeight: 26
+ }
+ }
+}
diff --git a/examples/quick/controls/touch/main.qml b/examples/quick/controls/touch/main.qml
index 04509803..a6de8910 100644
--- a/examples/quick/controls/touch/main.qml
+++ b/examples/quick/controls/touch/main.qml
@@ -123,6 +123,10 @@ ApplicationWindow {
title: "TextInput"
page: "content/TextInputPage.qml"
}
+ ListElement {
+ title: "List"
+ page: "content/ListPage.qml"
+ }
}
StackView {
diff --git a/examples/quick/controls/touch/resources.qrc b/examples/quick/controls/touch/resources.qrc
index 33da22cc..e64a063f 100644
--- a/examples/quick/controls/touch/resources.qrc
+++ b/examples/quick/controls/touch/resources.qrc
@@ -3,6 +3,7 @@
<file>main.qml</file>
<file>content/AndroidDelegate.qml</file>
<file>content/ButtonPage.qml</file>
+ <file>content/ListPage.qml</file>
<file>content/ProgressBarPage.qml</file>
<file>content/SliderPage.qml</file>
<file>content/TabBarPage.qml</file>
diff --git a/examples/quick/controls/touch/touch.pro b/examples/quick/controls/touch/touch.pro
index 70d9f8e0..1e5d12f3 100644
--- a/examples/quick/controls/touch/touch.pro
+++ b/examples/quick/controls/touch/touch.pro
@@ -8,6 +8,7 @@ OTHER_FILES += \
main.qml \
content/AndroidDelegate.qml \
content/ButtonPage.qml \
+ content/ListPage.qml \
content/ProgressBarPage.qml \
content/SliderPage.qml \
content/TabBarPage.qml \
diff --git a/src/controls/Styles/Base/ScrollViewStyle.qml b/src/controls/Styles/Base/ScrollViewStyle.qml
index e8dddedf..2a0aa137 100644
--- a/src/controls/Styles/Base/ScrollViewStyle.qml
+++ b/src/controls/Styles/Base/ScrollViewStyle.qml
@@ -128,6 +128,7 @@ Style {
anchors.bottomMargin: styleData.horizontal ? -1 : -2
}
onHoveredChanged: if (hovered) sticky = true
+ onVisibleChanged: if (!visible) sticky = false
}
/*! This component controls the appearance of the
@@ -166,6 +167,7 @@ Style {
Behavior on height { enabled: styleData.horizontal && transientScrollBars; NumberAnimation { duration: 100 } }
}
onHoveredChanged: if (hovered) sticky = true
+ onVisibleChanged: if (!visible) sticky = false
}
/*! This component controls the appearance of the
@@ -272,17 +274,6 @@ Style {
PauseAnimation { duration: 450 }
NumberAnimation { properties: "opacity"; duration: 200 }
PropertyAction { target: panel; property: "visible"; value: false }
- PropertyAction { target: handleControl.item; property: "sticky"; value: false }
- PropertyAction { target: bg.item; property: "sticky"; value: false }
- }
- }
-
- // once a sbar has been hovered, it sticks on the screen. however, if this
- // sbar gets raised because the other sbar is hovered => clear the sticky bit
- onRaisedChanged: {
- if (raised) {
- bg.item.sticky = false
- handleControl.item.sticky = false
}
}