diff options
author | J-P Nurmi <jpnurmi@digia.com> | 2013-10-18 15:30:27 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-10-23 12:17:01 +0200 |
commit | a8fdfbbbf7962eb5ca5bbd078bc36ba52f06a21b (patch) | |
tree | 93130e55eb479804c980c69de2719c83764e53b9 | |
parent | 6ec67932271d3a20e76587bc040dc7b76e16bb57 (diff) | |
download | qtquickcontrols-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.qml | 82 | ||||
-rw-r--r-- | examples/quick/controls/touch/main.qml | 4 | ||||
-rw-r--r-- | examples/quick/controls/touch/resources.qrc | 1 | ||||
-rw-r--r-- | examples/quick/controls/touch/touch.pro | 1 | ||||
-rw-r--r-- | src/controls/Styles/Base/ScrollViewStyle.qml | 13 |
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 } } |