aboutsummaryrefslogtreecommitdiffstats
path: root/tests/manual
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2017-10-05 20:39:42 +0200
committerLiang Qi <liang.qi@qt.io>2017-10-05 20:39:42 +0200
commit850f5868b7eef9746c49570ed4c8bfb2c5177ecc (patch)
tree91de4ddc14c65e946b2a87b33a5596a95d4c89ec /tests/manual
parenteb1b76053f2c6f35f8a33bec71536ca24651a711 (diff)
parent0bd5c342013bfae63f1a7e13a0f531cb0a2c8581 (diff)
Merge remote-tracking branch 'origin/5.10' into dev
Diffstat (limited to 'tests/manual')
-rw-r--r--tests/manual/styles-cover-flow/CoverFlowDelegate.qml136
-rw-r--r--tests/manual/styles-cover-flow/CoverFlowPath.qml157
-rw-r--r--tests/manual/styles-cover-flow/styles-cover-flow.cpp66
-rw-r--r--tests/manual/styles-cover-flow/styles-cover-flow.pro11
-rw-r--r--tests/manual/styles-cover-flow/styles-cover-flow.qml100
-rw-r--r--tests/manual/testbench/assetfixer.cpp1
-rw-r--r--tests/manual/testbench/controls/CheckDelegate.qml2
-rw-r--r--tests/manual/testbench/controls/Dialog.qml6
-rw-r--r--tests/manual/testbench/controls/ItemDelegate.qml2
-rw-r--r--tests/manual/testbench/controls/MenuBar.qml79
-rw-r--r--tests/manual/testbench/controls/RadioDelegate.qml2
-rw-r--r--tests/manual/testbench/controls/ScrollBar.qml2
-rw-r--r--tests/manual/testbench/controls/ScrollIndicator.qml2
-rw-r--r--tests/manual/testbench/controls/SpinBox.qml8
-rw-r--r--tests/manual/testbench/controls/SwipeDelegate.qml2
-rw-r--r--tests/manual/testbench/controls/Switch.qml2
-rw-r--r--tests/manual/testbench/controls/SwitchDelegate.qml2
-rw-r--r--tests/manual/testbench/controls/TextArea.qml14
-rw-r--r--tests/manual/testbench/controls/TextField.qml15
-rw-r--r--tests/manual/testbench/qml.qrc1
-rw-r--r--tests/manual/testbench/testbench.qml35
21 files changed, 626 insertions, 19 deletions
diff --git a/tests/manual/styles-cover-flow/CoverFlowDelegate.qml b/tests/manual/styles-cover-flow/CoverFlowDelegate.qml
new file mode 100644
index 00000000..8b220269
--- /dev/null
+++ b/tests/manual/styles-cover-flow/CoverFlowDelegate.qml
@@ -0,0 +1,136 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** BSD License Usage
+** Alternatively, 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 The Qt Company Ltd 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 QtGraphicalEffects 1.0
+import QtQuick 2.10
+
+Item {
+ id: root
+ width: PathView.view.delegateSize
+ height: width
+ z: PathView.zOrder
+
+ transform: [
+ Rotation {
+ angle: root.PathView.rotateY
+ origin.x: sourceImage.width / 2
+ origin.y: sourceImage.height * 0.3
+ axis.x: 0
+ axis.y: 1
+ axis.z: 0
+ },
+ Scale {
+ xScale: 1.0
+ yScale: root.PathView.scale
+ origin.x: sourceImage.width / 2
+ origin.y: sourceImage.height * 0.4
+ }
+ ]
+
+ Image {
+ id: sourceImage
+ width: root.PathView.view.delegateSize
+ height: width
+ fillMode: Image.PreserveAspectFit
+ source: "file:/" + docImagesDir + model.source
+
+ Rectangle {
+ x: (sourceImage.width - sourceImage.paintedWidth) / 2
+ width: sourceImage.paintedWidth + (index == 6 ? 2 : 1)
+ height: sourceImage.height
+ color: "transparent"
+ border.color: "#f4f4f4"
+ antialiasing: true
+ visible: !model.dark
+ }
+ }
+
+ ShaderEffectSource {
+ id: reflection
+ sourceItem: sourceImage
+ y: sourceItem.height
+ width: sourceItem.width
+ height: sourceItem.height
+
+ transform: [
+ Rotation {
+ origin.x: reflection.width / 2
+ origin.y: reflection.height / 2
+ axis.x: 1
+ axis.y: 0
+ axis.z: 0
+ angle: 180
+ }
+ ]
+ }
+
+ Rectangle {
+ objectName: sourceImage.source.toString().slice(-20)
+ x: (parent.width - sourceImage.paintedWidth) / 2// + (paintedWidthDiff > 0 ? 1.0 - paintedWidthDiff : 0)
+ y: reflection.y
+ width: sourceImage.paintedWidth + (index == 6 ? 2 : 1)
+ height: sourceImage.paintedHeight
+
+ // TODO: figure out how to get perfect x/width without using the current width hack
+// readonly property real paintedWidthDiff: sourceImage.paintedWidth - Math.floor(sourceImage.paintedWidth)
+
+ gradient: Gradient {
+ GradientStop {
+ position: 0.0
+ color: Qt.rgba(backgroundColor.r, backgroundColor.g, backgroundColor.b, 0.33)
+ }
+ GradientStop {
+ // This determines the point at which the reflection fades out.
+ position: 1.0
+ color: backgroundColor
+ }
+ }
+ }
+}
diff --git a/tests/manual/styles-cover-flow/CoverFlowPath.qml b/tests/manual/styles-cover-flow/CoverFlowPath.qml
new file mode 100644
index 00000000..f50cf31d
--- /dev/null
+++ b/tests/manual/styles-cover-flow/CoverFlowPath.qml
@@ -0,0 +1,157 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** BSD License Usage
+** Alternatively, 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 The Qt Company Ltd 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.10
+
+Path {
+ // Point 1
+ property PathView pathView
+
+ startX: 0
+ startY: pathView.centerY
+
+ PathAttribute {
+ name: "rotateY"
+ value: 50.0
+ }
+ PathAttribute {
+ name: "scale"
+ value: 0.7
+ }
+ PathAttribute {
+ name: "zOrder"
+ value: 1.0
+ }
+
+ // Line to point 2
+ PathLine {
+ x: pathView.centerX - pathView.delegateSize * 0.4
+ y: pathView.centerY
+ }
+ PathPercent {
+ value: 0.44
+ }
+ PathAttribute {
+ name: "rotateY"
+ value: 50.0
+ }
+ PathAttribute {
+ name: "scale"
+ value: 0.7
+ }
+ PathAttribute {
+ name: "zOrder"
+ value: 10.0
+ }
+
+ // Quad to point 3
+ PathQuad {
+ x: pathView.centerX
+ y: pathView.centerY + pathView.delegateSize * 0.04
+ controlX: pathView.centerX - pathView.delegateSize * 0.2
+ controlY: pathView.centerY + pathView.delegateSize * 0.04
+ }
+ PathPercent {
+ value: 0.5
+ }
+ PathAttribute {
+ name: "rotateY"
+ value: 0.0
+ }
+ PathAttribute {
+ name: "scale"
+ value: 1.0
+ }
+ PathAttribute {
+ name: "zOrder"
+ value: 50.0
+ }
+
+ // Quad to point 4
+ PathQuad {
+ x: pathView.centerX + pathView.delegateSize * 0.4
+ y: pathView.centerY
+ controlX: pathView.centerX + pathView.delegateSize * 0.2
+ controlY: pathView.centerY + pathView.delegateSize * 0.04
+ }
+ PathPercent {
+ value: 0.56
+ }
+ PathAttribute {
+ name: "rotateY"
+ value: -50.0
+ }
+ PathAttribute {
+ name: "scale"
+ value: 0.7
+ }
+ PathAttribute {
+ name: "zOrder"
+ value: 10.0
+ }
+
+ // Line to point 5
+ PathLine {
+ x: pathView.width
+ y: pathView.centerY
+ }
+ PathAttribute {
+ name: "rotateY"
+ value: -50.0
+ }
+ PathAttribute {
+ name: "scale"
+ value: 0.7
+ }
+ PathAttribute {
+ name: "zOrder"
+ value: 1.0
+ }
+}
diff --git a/tests/manual/styles-cover-flow/styles-cover-flow.cpp b/tests/manual/styles-cover-flow/styles-cover-flow.cpp
new file mode 100644
index 00000000..d665d613
--- /dev/null
+++ b/tests/manual/styles-cover-flow/styles-cover-flow.cpp
@@ -0,0 +1,66 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** BSD License Usage
+** Alternatively, 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 The Qt Company Ltd 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$
+**
+****************************************************************************/
+
+#include <QGuiApplication>
+#include <QQmlApplicationEngine>
+#include <QQmlContext>
+
+int main(int argc, char *argv[])
+{
+ QGuiApplication app(argc, argv);
+
+ QQmlApplicationEngine engine;
+ engine.rootContext()->setContextProperty("docImagesDir", QString(DOC_IMAGES_DIR));
+ engine.load(QUrl("qrc:/styles-cover-flow.qml"));
+ if (engine.rootObjects().isEmpty())
+ return -1;
+
+ return app.exec();
+}
diff --git a/tests/manual/styles-cover-flow/styles-cover-flow.pro b/tests/manual/styles-cover-flow/styles-cover-flow.pro
new file mode 100644
index 00000000..2faa9fba
--- /dev/null
+++ b/tests/manual/styles-cover-flow/styles-cover-flow.pro
@@ -0,0 +1,11 @@
+TEMPLATE = app
+TARGET = stylescoverflow
+QT += quick quickcontrols2
+
+SOURCES += \
+ styles-cover-flow.cpp
+
+RESOURCES += \
+ $$files(*.qml, true)
+
+DEFINES += DOC_IMAGES_DIR=\\\"$$PWD/../../../src/imports/controls/doc/images/\\\"
diff --git a/tests/manual/styles-cover-flow/styles-cover-flow.qml b/tests/manual/styles-cover-flow/styles-cover-flow.qml
new file mode 100644
index 00000000..3d8aea0f
--- /dev/null
+++ b/tests/manual/styles-cover-flow/styles-cover-flow.qml
@@ -0,0 +1,100 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** BSD License Usage
+** Alternatively, 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 The Qt Company Ltd 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.10
+import QtQuick.Window 2.3
+
+Window {
+ // Different delegate positions and widths and window background colors
+ // can cause some unwanted "rogue pixels", so an easy way to get it perfect
+ // is to mess with the width.
+ width: 814
+ height: 512
+ visible: true
+ color: backgroundColor
+ flags: Qt.FramelessWindowHint
+
+ readonly property color backgroundColor: "#ffffff"
+
+ Shortcut {
+ sequence: "Ctrl+Q"
+ onActivated: Qt.quit()
+ }
+
+ PathView {
+ id: view
+ anchors.fill: parent
+ anchors.leftMargin: 130
+ anchors.rightMargin: 130
+ model: ListModel {
+ ListElement { source: "qtquickcontrols2-default.png"; dark: false }
+ ListElement { source: "qtquickcontrols2-fusion.png"; dark: false }
+ ListElement { source: "qtquickcontrols2-universal-light.png"; dark: false }
+ ListElement { source: "qtquickcontrols2-universal-dark.png"; dark: true }
+ ListElement { source: "qtquickcontrols2-material-dark.png"; dark: true }
+ ListElement { source: "qtquickcontrols2-imagine.png"; dark: false }
+ ListElement { source: "qtquickcontrols2-material-light.png"; dark: false }
+ }
+
+ highlightRangeMode: PathView.StrictlyEnforceRange
+ preferredHighlightBegin: 0.5
+ preferredHighlightEnd: 0.5
+ pathItemCount: 9
+
+ property real centerX: width / 2
+ property real centerY: height * 0.4
+ property real delegateSize: 393 / 2
+
+ path: CoverFlowPath {
+ pathView: view
+ }
+ delegate: CoverFlowDelegate {}
+ }
+}
diff --git a/tests/manual/testbench/assetfixer.cpp b/tests/manual/testbench/assetfixer.cpp
index 21a67573..1f914e71 100644
--- a/tests/manual/testbench/assetfixer.cpp
+++ b/tests/manual/testbench/assetfixer.cpp
@@ -515,6 +515,7 @@ void AssetFixer::clearImageCache()
// We can't seem to disable image caching on a per-Image basis (by the time the QQuickImages
// are available, the cache has already been filled), so we call this instead.
+ qCDebug(lcAssetFixer) << "Calling QQuickWindow::releaseResources() to clear pixmap cache";
window->releaseResources();
}
diff --git a/tests/manual/testbench/controls/CheckDelegate.qml b/tests/manual/testbench/controls/CheckDelegate.qml
index fc6ce6eb..b742b170 100644
--- a/tests/manual/testbench/controls/CheckDelegate.qml
+++ b/tests/manual/testbench/controls/CheckDelegate.qml
@@ -70,6 +70,7 @@ QtObject {
checkState: is("checked") ? Qt.Checked : is("partially-checked") ? Qt.PartiallyChecked : Qt.Unchecked
// Only set it if it's pressed, or the non-pressed examples will have no press effects
down: is("pressed") ? true : undefined
+ focusPolicy: Qt.StrongFocus
}
property Component exampleComponent: ListView {
@@ -80,6 +81,7 @@ QtObject {
delegate: CheckDelegate {
width: parent.width
text: "CheckDelegate"
+ focusPolicy: Qt.StrongFocus
}
}
}
diff --git a/tests/manual/testbench/controls/Dialog.qml b/tests/manual/testbench/controls/Dialog.qml
index b05ef1e3..c550cdae 100644
--- a/tests/manual/testbench/controls/Dialog.qml
+++ b/tests/manual/testbench/controls/Dialog.qml
@@ -57,7 +57,9 @@ QtObject {
property string customControlName: qsTr("Dialog")
property var supportedStates: [
- []
+ [],
+ ["modal"],
+ ["dim"]
]
property Component component: Button {
@@ -73,6 +75,8 @@ QtObject {
y: (window.height - height) / 2
standardButtons: Dialog.Ok | Dialog.Cancel
parent: window.contentItem
+ modal: is("modal")
+ dim: is("dim")
Label {
text: "Lorem ipsum dolor sit amet, \nconsectetuer adipiscing elit, \n"
diff --git a/tests/manual/testbench/controls/ItemDelegate.qml b/tests/manual/testbench/controls/ItemDelegate.qml
index 98f13556..44882df9 100644
--- a/tests/manual/testbench/controls/ItemDelegate.qml
+++ b/tests/manual/testbench/controls/ItemDelegate.qml
@@ -67,6 +67,7 @@ QtObject {
// Only set it if it's pressed, or the non-pressed examples will have no press effects
down: is("pressed") ? true : undefined
highlighted: is("highlighted")
+ focusPolicy: Qt.StrongFocus
}
property Component exampleComponent: ListView {
@@ -77,6 +78,7 @@ QtObject {
delegate: ItemDelegate {
width: parent.width
text: "ItemDelegate"
+ focusPolicy: Qt.StrongFocus
}
}
}
diff --git a/tests/manual/testbench/controls/MenuBar.qml b/tests/manual/testbench/controls/MenuBar.qml
new file mode 100644
index 00000000..00db9af1
--- /dev/null
+++ b/tests/manual/testbench/controls/MenuBar.qml
@@ -0,0 +1,79 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** BSD License Usage
+** Alternatively, 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 The Qt Company Ltd 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.10
+import QtQuick.Controls 2.3
+
+// TODO
+QtObject {
+ property string customControlName: qsTr("MenuBar & MenuBarItem")
+
+ property var supportedStates: [
+ []
+ ]
+
+ property Component component: MenuBar {
+ MenuBarItem {
+ text: qsTr("Normal")
+ }
+ MenuBarItem {
+ text: qsTr("Pressed")
+ down: true
+ }
+ MenuBarItem {
+ text: qsTr("Highlighted")
+ highlighted: true
+ }
+ MenuBarItem {
+ text: qsTr("Disabled")
+ enabled: false
+ }
+ }
+}
diff --git a/tests/manual/testbench/controls/RadioDelegate.qml b/tests/manual/testbench/controls/RadioDelegate.qml
index cb1f6139..fcae84f7 100644
--- a/tests/manual/testbench/controls/RadioDelegate.qml
+++ b/tests/manual/testbench/controls/RadioDelegate.qml
@@ -68,6 +68,7 @@ QtObject {
checked: is("checked")
// Only set it if it's pressed, or the non-pressed examples will have no press effects
down: is("pressed") ? true : undefined
+ focusPolicy: Qt.StrongFocus
}
}
@@ -79,6 +80,7 @@ QtObject {
delegate: RadioDelegate {
width: parent.width
text: "RadioDelegate"
+ focusPolicy: Qt.StrongFocus
}
}
}
diff --git a/tests/manual/testbench/controls/ScrollBar.qml b/tests/manual/testbench/controls/ScrollBar.qml
index abe1d007..f59796d2 100644
--- a/tests/manual/testbench/controls/ScrollBar.qml
+++ b/tests/manual/testbench/controls/ScrollBar.qml
@@ -96,7 +96,7 @@ QtObject {
ScrollBar {
id: horizontalScrollBar
enabled: !is("disabled")
- orientation: Qt.Vertical
+ orientation: Qt.Horizontal
interactive: is("interactive")
visible: is("horizontal")
size: 0.3
diff --git a/tests/manual/testbench/controls/ScrollIndicator.qml b/tests/manual/testbench/controls/ScrollIndicator.qml
index 8c5079fa..32c66aad 100644
--- a/tests/manual/testbench/controls/ScrollIndicator.qml
+++ b/tests/manual/testbench/controls/ScrollIndicator.qml
@@ -86,7 +86,7 @@ QtObject {
ScrollIndicator {
id: horizontalScrollIndicator
enabled: !is("disabled")
- orientation: Qt.Vertical
+ orientation: Qt.Horizontal
active: true
visible: is("horizontal")
size: 0.3
diff --git a/tests/manual/testbench/controls/SpinBox.qml b/tests/manual/testbench/controls/SpinBox.qml
index 87e5cfae..77094dc0 100644
--- a/tests/manual/testbench/controls/SpinBox.qml
+++ b/tests/manual/testbench/controls/SpinBox.qml
@@ -53,16 +53,18 @@ import QtQuick.Controls 2.3
QtObject {
property var supportedStates: [
- ["disabled"],
+ [],
["pressed"],
+ ["disabled"],
["mirrored"],
- ["mirrored", "disabled"],
["mirrored", "pressed"],
+ ["mirrored", "disabled"],
["editable"],
["editable", "pressed"],
+ ["editable", "disabled"],
["editable", "mirrored"],
["editable", "mirrored", "pressed"],
- ["editable", "mirrored", "mirrored"]
+ ["editable", "mirrored", "disabled"]
]
property Component component: SpinBox {
diff --git a/tests/manual/testbench/controls/SwipeDelegate.qml b/tests/manual/testbench/controls/SwipeDelegate.qml
index 3ea67101..6143a50f 100644
--- a/tests/manual/testbench/controls/SwipeDelegate.qml
+++ b/tests/manual/testbench/controls/SwipeDelegate.qml
@@ -83,6 +83,7 @@ QtObject {
// Only set it if it's pressed, or the non-pressed examples will have no press effects
down: is("pressed") ? true : undefined
highlighted: is("highlighted")
+ focusPolicy: Qt.StrongFocus
swipe.left: actionComponent
swipe.right: actionComponent
@@ -96,6 +97,7 @@ QtObject {
delegate: SwipeDelegate {
width: parent.width
text: "SwipeDelegate"
+ focusPolicy: Qt.StrongFocus
swipe.left: actionComponent
swipe.right: actionComponent
diff --git a/tests/manual/testbench/controls/Switch.qml b/tests/manual/testbench/controls/Switch.qml
index 70f44abd..63051a50 100644
--- a/tests/manual/testbench/controls/Switch.qml
+++ b/tests/manual/testbench/controls/Switch.qml
@@ -65,7 +65,7 @@ QtObject {
]
property Component component: Switch {
- text: "CheckBox"
+ text: "Switch"
enabled: !is("disabled")
checked: is("checked")
// Only set it if it's pressed, or the non-pressed examples will have no press effects
diff --git a/tests/manual/testbench/controls/SwitchDelegate.qml b/tests/manual/testbench/controls/SwitchDelegate.qml
index aad2eed3..4cb42105 100644
--- a/tests/manual/testbench/controls/SwitchDelegate.qml
+++ b/tests/manual/testbench/controls/SwitchDelegate.qml
@@ -67,6 +67,7 @@ QtObject {
// Only set it if it's pressed, or the non-pressed examples will have no press effects
down: is("pressed") ? true : undefined
highlighted: is("highlighted")
+ focusPolicy: Qt.StrongFocus
LayoutMirroring.enabled: is("mirrored")
}
@@ -79,6 +80,7 @@ QtObject {
delegate: SwitchDelegate {
width: parent.width
text: "SwitchDelegate"
+ focusPolicy: Qt.StrongFocus
}
}
}
diff --git a/tests/manual/testbench/controls/TextArea.qml b/tests/manual/testbench/controls/TextArea.qml
index de34076a..8f2493f4 100644
--- a/tests/manual/testbench/controls/TextArea.qml
+++ b/tests/manual/testbench/controls/TextArea.qml
@@ -57,7 +57,17 @@ QtObject {
["disabled"],
]
- property Component component: TextArea {
- text: "TextArea\nTextArea\nTextArea"
+ property Component component: Column {
+ spacing: 10
+
+ TextArea {
+ text: "TextArea\nwith\ntext"
+ enabled: !is("disabled")
+ }
+
+ TextArea {
+ placeholderText: "TextArea with placeholderText"
+ enabled: !is("disabled")
+ }
}
}
diff --git a/tests/manual/testbench/controls/TextField.qml b/tests/manual/testbench/controls/TextField.qml
index 6986854b..7ecd21b2 100644
--- a/tests/manual/testbench/controls/TextField.qml
+++ b/tests/manual/testbench/controls/TextField.qml
@@ -57,8 +57,17 @@ QtObject {
["disabled"],
]
- property Component component: TextField {
- text: "TextField"
- enabled: !is("disabled")
+ property Component component: Column {
+ spacing: 10
+
+ TextField {
+ text: "TextField with text"
+ enabled: !is("disabled")
+ }
+
+ TextField {
+ placeholderText: "TextField with placeholderText"
+ enabled: !is("disabled")
+ }
}
}
diff --git a/tests/manual/testbench/qml.qrc b/tests/manual/testbench/qml.qrc
index 85d7f5d3..a0927f35 100644
--- a/tests/manual/testbench/qml.qrc
+++ b/tests/manual/testbench/qml.qrc
@@ -39,5 +39,6 @@
<file>controls/Tumbler.qml</file>
<file>controls/BusyIndicator.qml</file>
<file>testbench.qml</file>
+ <file>controls/MenuBar.qml</file>
</qresource>
</RCC>
diff --git a/tests/manual/testbench/testbench.qml b/tests/manual/testbench/testbench.qml
index 43f4465e..d9bf0fe5 100644
--- a/tests/manual/testbench/testbench.qml
+++ b/tests/manual/testbench/testbench.qml
@@ -53,7 +53,7 @@ import QtQuick.Window 2.3
import QtQuick.Layouts 1.2
import QtQuick.Controls 2.3
import QtQuick.Controls.Imagine 2.3
-import Qt.labs.folderlistmodel 1.0
+import Qt.labs.folderlistmodel 2.2
import Qt.labs.settings 1.0
import App 1.0
@@ -266,6 +266,10 @@ ApplicationWindow {
function reloadAssets() {
console.log(brief, "Reloading assets...")
+ // Clear the model, otherwise ListView will keep the old items around
+ // with the old assets, even after clearing the pixmap cache
+ listView.resettingModel = true
+ listView.model = null
window.Imagine.path = ""
assetReloadNextFrameTimer.start()
}
@@ -297,9 +301,14 @@ ApplicationWindow {
window.Imagine.path = Qt.binding(function() {
return settings.useCustomImaginePath && settings.imaginePath.length > 0 ? settings.imaginePath : undefined
})
+
infoToolTip.text = "Reloaded assets"
infoToolTip.timeout = 1500
infoToolTip.open()
+
+ listView.model = controlFolderListModel
+ listView.resettingModel = false
+
console.log(brief, "... reloaded assets.")
}
}
@@ -378,18 +387,30 @@ ApplicationWindow {
return paletteSettings.useCustomPalette && paletteColorString.length > 0 ? paletteColorString : undefined
}
+ FolderListModel {
+ id: controlFolderListModel
+ folder: "qrc:/controls"
+ showDirs: false
+ nameFilters: searchTextField.text.length > 0 ? ["*" + searchTextField.text + "*.qml"] : []
+ caseSensitive: false
+ }
+
ListView {
+ id: listView
anchors.fill: parent
spacing: 30
- visible: !busyIndicatorRow.visible
+ visible: !busyIndicatorRow.visible && !resettingModel
- ScrollBar.vertical: ScrollBar {}
+ property bool resettingModel: false
- model: FolderListModel {
- folder: "qrc:/controls"
- showDirs: false
- nameFilters: searchTextField.text.length > 0 ? ["*" + searchTextField.text + "*.qml"] : []
+ ScrollBar.vertical: ScrollBar {
+ parent: contentPane
+ anchors.top: parent.top
+ anchors.right: parent.right
+ anchors.bottom: parent.bottom
}
+
+ model: controlFolderListModel
delegate: ColumnLayout {
id: rootDelegate
width: parent.width