aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/applicationwindow
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2017-09-27 14:48:17 +0200
committerJ-P Nurmi <jpnurmi@qt.io>2017-09-27 13:42:28 +0000
commit125c08cad177edf8baba9a6ca84425255db9c500 (patch)
treed308dd8d0391dcdca280805e5d9a28cac860c20a /tests/auto/applicationwindow
parentc5e60dbf0023acf751bd18fe660501ca4b195daf (diff)
Rename tst_applicationwindow to tst_QQuickApplicationWindow
Change-Id: If9fc2bb41cf251af71479b25656240e0d3c238d8 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'tests/auto/applicationwindow')
-rw-r--r--tests/auto/applicationwindow/applicationwindow.pro15
-rw-r--r--tests/auto/applicationwindow/data/activeFocusControl.qml115
-rw-r--r--tests/auto/applicationwindow/data/activefocusontab.qml94
-rw-r--r--tests/auto/applicationwindow/data/attachedProperties.qml190
-rw-r--r--tests/auto/applicationwindow/data/basicapplicationwindow.qml56
-rw-r--r--tests/auto/applicationwindow/data/clearfocusondestruction.qml74
-rw-r--r--tests/auto/applicationwindow/data/defaultFocus.qml69
-rw-r--r--tests/auto/applicationwindow/data/fill.qml79
-rw-r--r--tests/auto/applicationwindow/data/focusAfterPopupClosed.qml111
-rw-r--r--tests/auto/applicationwindow/data/font.qml97
-rw-r--r--tests/auto/applicationwindow/data/layout.qml61
-rw-r--r--tests/auto/applicationwindow/data/locale.qml77
-rw-r--r--tests/auto/applicationwindow/tst_applicationwindow.cpp838
13 files changed, 0 insertions, 1876 deletions
diff --git a/tests/auto/applicationwindow/applicationwindow.pro b/tests/auto/applicationwindow/applicationwindow.pro
deleted file mode 100644
index f94641c7..00000000
--- a/tests/auto/applicationwindow/applicationwindow.pro
+++ /dev/null
@@ -1,15 +0,0 @@
-CONFIG += testcase
-TARGET = tst_applicationwindow
-SOURCES += tst_applicationwindow.cpp
-
-macos:CONFIG -= app_bundle
-
-QT += core-private gui-private qml-private quick-private quicktemplates2-private quickcontrols2-private testlib
-
-include (../shared/util.pri)
-
-TESTDATA = data/*
-
-OTHER_FILES += \
- data/*.qml
-
diff --git a/tests/auto/applicationwindow/data/activeFocusControl.qml b/tests/auto/applicationwindow/data/activeFocusControl.qml
deleted file mode 100644
index 940e8e08..00000000
--- a/tests/auto/applicationwindow/data/activeFocusControl.qml
+++ /dev/null
@@ -1,115 +0,0 @@
-/****************************************************************************
-**
-** 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.6
-import QtQuick.Controls 2.1
-
-ApplicationWindow {
- width: 400
- height: 400
-
- property alias container_column: column
- property alias textInput_column: ti_column
- property alias textEdit_column: te_column
- property alias textField_column: tf_column
- property alias textArea_column: ta_column
- property alias spinBox_column: sp_column
- property alias spinContent_column: sp_column.contentItem
-
- property alias container_frame: frame
- property alias textInput_frame: ti_frame
- property alias textEdit_frame: te_frame
- property alias textField_frame: tf_frame
- property alias textArea_frame: ta_frame
- property alias spinBox_frame: sp_frame
- property alias spinContent_frame: sp_frame.contentItem
-
- Column {
- id: column
-
- TextInput {
- id: ti_column
- }
- TextEdit {
- id: te_column
- }
- TextField {
- id: tf_column
- }
- TextArea {
- id: ta_column
- }
- SpinBox {
- id: sp_column
- }
- }
-
- Frame {
- id: frame
-
- Column {
- TextInput {
- id: ti_frame
- }
- TextEdit {
- id: te_frame
- }
- TextField {
- id: tf_frame
- }
- TextArea {
- id: ta_frame
- }
- SpinBox {
- id: sp_frame
- }
- }
- }
-}
diff --git a/tests/auto/applicationwindow/data/activefocusontab.qml b/tests/auto/applicationwindow/data/activefocusontab.qml
deleted file mode 100644
index 357ea9a4..00000000
--- a/tests/auto/applicationwindow/data/activefocusontab.qml
+++ /dev/null
@@ -1,94 +0,0 @@
-/****************************************************************************
-**
-** 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.6
-import QtQuick.Controls 2.1
-
-ApplicationWindow {
- title: "Test Application Window"
- width: 100
- height: 100
- Item {
- id: main
- objectName: "main"
- width: 100
- height: 100
- //focus: true
- Column {
- anchors.fill: parent
- id: column
- objectName: "column"
- Item {
- id: sub1
- objectName: "sub1"
- activeFocusOnTab: true
- Accessible.role: Accessible.Table
- width: 100
- height: 50
- Rectangle {
- anchors.fill: parent
- color: parent.activeFocus ? "red" : "black"
- }
- }
- Item {
- id: sub2
- objectName: "sub2"
- activeFocusOnTab: true
- Accessible.role: Accessible.Table
- width: 100
- height: 50
- Rectangle {
- anchors.fill: parent
- color: parent.activeFocus ? "red" : "black"
- }
- }
- }
- }
-}
diff --git a/tests/auto/applicationwindow/data/attachedProperties.qml b/tests/auto/applicationwindow/data/attachedProperties.qml
deleted file mode 100644
index 09bc47ef..00000000
--- a/tests/auto/applicationwindow/data/attachedProperties.qml
+++ /dev/null
@@ -1,190 +0,0 @@
-/****************************************************************************
-**
-** 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.6
-import QtQuick.Window 2.2
-import QtQuick.Controls 2.1
-
-ApplicationWindow {
- property alias childControl: childControl
- property alias childItem: childItem
- property alias childObject: childObject
-
- Control {
- id: childControl
-
- property ApplicationWindow attached_window: ApplicationWindow.window
- property Item attached_contentItem: ApplicationWindow.contentItem
- property Item attached_activeFocusControl: ApplicationWindow.activeFocusControl
- property Item attached_header: ApplicationWindow.header
- property Item attached_footer: ApplicationWindow.footer
- property Item attached_overlay: ApplicationWindow.overlay
- }
-
- Item {
- id: childItem
-
- property ApplicationWindow attached_window: ApplicationWindow.window
- property Item attached_contentItem: ApplicationWindow.contentItem
- property Item attached_activeFocusControl: ApplicationWindow.activeFocusControl
- property Item attached_header: ApplicationWindow.header
- property Item attached_footer: ApplicationWindow.footer
- property Item attached_overlay: ApplicationWindow.overlay
- }
-
- QtObject {
- id: childObject
-
- property ApplicationWindow attached_window: ApplicationWindow.window
- property Item attached_contentItem: ApplicationWindow.contentItem
- property Item attached_activeFocusControl: ApplicationWindow.activeFocusControl
- property Item attached_header: ApplicationWindow.header
- property Item attached_footer: ApplicationWindow.footer
- property Item attached_overlay: ApplicationWindow.overlay
- }
-
- property alias childWindow: childWindow
- property alias childWindowControl: childWindowControl
- property alias childWindowItem: childWindowItem
- property alias childWindowObject: childWindowObject
-
- Window {
- id: childWindow
-
- property ApplicationWindow attached_window: ApplicationWindow.window
- property Item attached_contentItem: ApplicationWindow.contentItem
- property Item attached_activeFocusControl: ApplicationWindow.activeFocusControl
- property Item attached_header: ApplicationWindow.header
- property Item attached_footer: ApplicationWindow.footer
- property Item attached_overlay: ApplicationWindow.overlay
-
- Control {
- id: childWindowControl
-
- property ApplicationWindow attached_window: ApplicationWindow.window
- property Item attached_contentItem: ApplicationWindow.contentItem
- property Item attached_activeFocusControl: ApplicationWindow.activeFocusControl
- property Item attached_header: ApplicationWindow.header
- property Item attached_footer: ApplicationWindow.footer
- property Item attached_overlay: ApplicationWindow.overlay
- }
-
- Item {
- id: childWindowItem
-
- property ApplicationWindow attached_window: ApplicationWindow.window
- property Item attached_contentItem: ApplicationWindow.contentItem
- property Item attached_activeFocusControl: ApplicationWindow.activeFocusControl
- property Item attached_header: ApplicationWindow.header
- property Item attached_footer: ApplicationWindow.footer
- property Item attached_overlay: ApplicationWindow.overlay
- }
-
- QtObject {
- id: childWindowObject
-
- property ApplicationWindow attached_window: ApplicationWindow.window
- property Item attached_contentItem: ApplicationWindow.contentItem
- property Item attached_activeFocusControl: ApplicationWindow.activeFocusControl
- property Item attached_header: ApplicationWindow.header
- property Item attached_footer: ApplicationWindow.footer
- property Item attached_overlay: ApplicationWindow.overlay
- }
- }
-
- property alias childAppWindow: childAppWindow
- property alias childAppWindowControl: childAppWindowControl
- property alias childAppWindowItem: childAppWindowItem
- property alias childAppWindowObject: childAppWindowObject
-
- ApplicationWindow {
- id: childAppWindow
-
- property ApplicationWindow attached_window: ApplicationWindow.window
- property Item attached_contentItem: ApplicationWindow.contentItem
- property Item attached_activeFocusControl: ApplicationWindow.activeFocusControl
- property Item attached_header: ApplicationWindow.header
- property Item attached_footer: ApplicationWindow.footer
- property Item attached_overlay: ApplicationWindow.overlay
-
- Control {
- id: childAppWindowControl
-
- property ApplicationWindow attached_window: ApplicationWindow.window
- property Item attached_contentItem: ApplicationWindow.contentItem
- property Item attached_activeFocusControl: ApplicationWindow.activeFocusControl
- property Item attached_header: ApplicationWindow.header
- property Item attached_footer: ApplicationWindow.footer
- property Item attached_overlay: ApplicationWindow.overlay
- }
-
- Item {
- id: childAppWindowItem
-
- property ApplicationWindow attached_window: ApplicationWindow.window
- property Item attached_contentItem: ApplicationWindow.contentItem
- property Item attached_activeFocusControl: ApplicationWindow.activeFocusControl
- property Item attached_header: ApplicationWindow.header
- property Item attached_footer: ApplicationWindow.footer
- property Item attached_overlay: ApplicationWindow.overlay
- }
-
- QtObject {
- id: childAppWindowObject
-
- property ApplicationWindow attached_window: ApplicationWindow.window
- property Item attached_contentItem: ApplicationWindow.contentItem
- property Item attached_activeFocusControl: ApplicationWindow.activeFocusControl
- property Item attached_header: ApplicationWindow.header
- property Item attached_footer: ApplicationWindow.footer
- property Item attached_overlay: ApplicationWindow.overlay
- }
- }
-}
diff --git a/tests/auto/applicationwindow/data/basicapplicationwindow.qml b/tests/auto/applicationwindow/data/basicapplicationwindow.qml
deleted file mode 100644
index 16182f59..00000000
--- a/tests/auto/applicationwindow/data/basicapplicationwindow.qml
+++ /dev/null
@@ -1,56 +0,0 @@
-/****************************************************************************
-**
-** 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.6
-import QtQuick.Controls 2.1
-
-ApplicationWindow {
- title: "Test Application Window"
-}
diff --git a/tests/auto/applicationwindow/data/clearfocusondestruction.qml b/tests/auto/applicationwindow/data/clearfocusondestruction.qml
deleted file mode 100644
index 3589439e..00000000
--- a/tests/auto/applicationwindow/data/clearfocusondestruction.qml
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the test suite 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 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.7
-import QtQuick.Controls 2.1
-import QtQuick.Layouts 1.3
-import QtGraphicalEffects 1.0
-
-ApplicationWindow {
- width: 200
- height: 200
- visible: true
-
- property alias textfield: textfield
-
- /*
- * The code below is the simplest way we can trigger that the signal
- * activeFocusItemChanged() is emitted during destruction of the
- * ApplicationWindow. This caused a crash in QQuickApplicationWindow.
- */
- FastBlur {
- id: fastBlur
- anchors.fill: parent
- radius: 30
- source: ShaderEffectSource {
- id: effectsource
- sourceItem: textfield
- sourceRect: Qt.rect( 0, 0, fastBlur.width, fastBlur.height )
- }
- }
-
- TextField {
- id: textfield
- anchors.bottom: parent.bottom
- focus: true
- }
-}
diff --git a/tests/auto/applicationwindow/data/defaultFocus.qml b/tests/auto/applicationwindow/data/defaultFocus.qml
deleted file mode 100644
index 741ce908..00000000
--- a/tests/auto/applicationwindow/data/defaultFocus.qml
+++ /dev/null
@@ -1,69 +0,0 @@
-/****************************************************************************
-**
-** 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.6
-import QtQuick.Controls 2.1
-
-ApplicationWindow {
- visible: true
- width: 200
- height: 200
-
- property bool receivedKeyPress: false
-
- Item {
- objectName: "item"
- focus: true
- anchors.fill: parent
-
- Keys.onLeftPressed: receivedKeyPress = true
- }
-}
-
diff --git a/tests/auto/applicationwindow/data/fill.qml b/tests/auto/applicationwindow/data/fill.qml
deleted file mode 100644
index 27b10d34..00000000
--- a/tests/auto/applicationwindow/data/fill.qml
+++ /dev/null
@@ -1,79 +0,0 @@
-/****************************************************************************
-**
-** 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.6
-import QtQuick.Controls 2.1
-
-ApplicationWindow {
- width: 400
- height: 400
-
- property alias stackView: stackView
- property alias nextItem: nextItem
-
- function pushNextItem() {
- stackView.push(nextItem, StackView.Immediate);
- }
-
- Rectangle {
- id: nextItem
- color: "blue"
- visible: false
- }
-
- StackView {
- id: stackView
- anchors.fill: parent
-
- initialItem: Rectangle {
- color: "red"
- }
- }
-}
diff --git a/tests/auto/applicationwindow/data/focusAfterPopupClosed.qml b/tests/auto/applicationwindow/data/focusAfterPopupClosed.qml
deleted file mode 100644
index f0499a3a..00000000
--- a/tests/auto/applicationwindow/data/focusAfterPopupClosed.qml
+++ /dev/null
@@ -1,111 +0,0 @@
-/****************************************************************************
-**
-** 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.6
-import QtQuick.Controls 2.1
-
-ApplicationWindow {
- width: 200
- height: 200
- visible: true
-
- signal focusScopeKeyPressed
- signal focusPopupKeyPressed
-
- property alias fileMenu: fileMenu
- property alias toolButton: toolButton
- property alias focusScope: focusScope
- property alias focusPopup: focusPopup
-
- header: ToolBar {
- ToolButton {
- id: toolButton
- text: qsTr("File")
- onClicked: fileMenu.open()
- focusPolicy: Qt.TabFocus
-
- Menu {
- id: fileMenu
- y: parent.height
-
- MenuItem {
- text: qsTr("New")
- }
- MenuItem {
- text: qsTr("Open")
- }
- MenuItem {
- text: qsTr("Close")
- }
- }
- }
- }
-
- FocusScope {
- id: focusScope
- focus: true
- anchors.fill: parent
-
- Keys.onSpacePressed: focusScopeKeyPressed()
- }
-
- Popup {
- id: focusPopup
- focus: true
- width: parent.width
- height: parent.height
-
- Item {
- focus: true
- Keys.onSpacePressed: focusPopupKeyPressed()
- }
- }
-}
-
diff --git a/tests/auto/applicationwindow/data/font.qml b/tests/auto/applicationwindow/data/font.qml
deleted file mode 100644
index a675aeab..00000000
--- a/tests/auto/applicationwindow/data/font.qml
+++ /dev/null
@@ -1,97 +0,0 @@
-/****************************************************************************
-**
-** 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.6
-import QtQuick.Controls 2.1
-import QtQuick.Templates 2.1 as T
-
-ApplicationWindow {
- objectName: "appWin"
- width: 400
- height: 400
-
- property alias mainItem: mainItem
-
- font.family: "Arial"
-
- T.Control {
- id: mainItem
- objectName: "mainItem"
- anchors.fill: parent
- property alias item_2: _item_2;
- property alias item_3: _item_3;
- property alias item_4: _item_4;
- property alias item_5: _item_5;
- property alias item_6: _item_6;
- T.Control {
- id: _item_2
- objectName: "_item_2"
- T.Control {
- id: _item_3
- objectName: "_item_3"
- }
- }
- T.TextArea {
- id: _item_4
- objectName: "_item_4"
- text: "Text Area"
- }
- T.TextField {
- id: _item_5
- objectName: "_item_5"
- text: "Text Field"
- }
- T.Label {
- id: _item_6
- objectName: "_item_6"
- text: "Label"
- }
- }
-}
diff --git a/tests/auto/applicationwindow/data/layout.qml b/tests/auto/applicationwindow/data/layout.qml
deleted file mode 100644
index a80b2d48..00000000
--- a/tests/auto/applicationwindow/data/layout.qml
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-**
-** 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.6
-import QtQuick.Controls 2.0
-
-ApplicationWindow {
- width: 200
- height: 200
- visible: true
-
- header: ToolBar { }
- footer: ToolBar { }
-}
diff --git a/tests/auto/applicationwindow/data/locale.qml b/tests/auto/applicationwindow/data/locale.qml
deleted file mode 100644
index 92edb53a..00000000
--- a/tests/auto/applicationwindow/data/locale.qml
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
-**
-** 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.6
-import QtQuick.Controls 2.1
-import QtQuick.Templates 2.1 as T
-
-ApplicationWindow {
- objectName: "appWin"
- width: 400
- height: 400
-
- property alias mainItem: mainItem
-
- T.Control {
- id: mainItem
- objectName: "mainItem"
- anchors.fill: parent
- property alias item_2: _item_2;
- property alias item_3: _item_3;
- T.Control {
- id: _item_2
- objectName: "_item_2"
- T.Control {
- id: _item_3
- objectName: "_item_3"
- }
- }
- }
-}
diff --git a/tests/auto/applicationwindow/tst_applicationwindow.cpp b/tests/auto/applicationwindow/tst_applicationwindow.cpp
deleted file mode 100644
index f35d9b7d..00000000
--- a/tests/auto/applicationwindow/tst_applicationwindow.cpp
+++ /dev/null
@@ -1,838 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** 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 http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <qtest.h>
-#include <QtTest/QSignalSpy>
-#include <QtQml/qqmlengine.h>
-#include <QtQml/qqmlcomponent.h>
-#include <QtQml/qqmlcontext.h>
-#include <QtQuick/qquickview.h>
-#include <QtQuick/private/qquickitem_p.h>
-#include <QtGui/private/qguiapplication_p.h>
-#include <QtQuickTemplates2/private/qquickapplicationwindow_p.h>
-#include <QtQuickTemplates2/private/qquickoverlay_p.h>
-#include <QtQuickTemplates2/private/qquickcontrol_p.h>
-#include <QtQuickTemplates2/private/qquicklabel_p.h>
-#include <QtQuickTemplates2/private/qquickmenu_p.h>
-#include <QtQuickTemplates2/private/qquickpopup_p.h>
-#include <QtQuickTemplates2/private/qquicktextarea_p.h>
-#include <QtQuickTemplates2/private/qquicktextfield_p.h>
-#include <QtQuickControls2/private/qquickproxytheme_p.h>
-#include "../shared/util.h"
-#include "../shared/visualtestutil.h"
-
-using namespace QQuickVisualTestUtil;
-
-class tst_applicationwindow : public QQmlDataTest
-{
- Q_OBJECT
-public:
-
-private slots:
- void qmlCreation();
- void activeFocusOnTab1();
- void activeFocusOnTab2();
- void defaultFocus();
- void implicitFill();
- void attachedProperties();
- void font();
- void defaultFont();
- void locale();
- void activeFocusControl_data();
- void activeFocusControl();
- void focusAfterPopupClosed();
- void clearFocusOnDestruction();
- void layout();
- void componentComplete();
-};
-
-void tst_applicationwindow::qmlCreation()
-{
- QQmlEngine engine;
- QQmlComponent component(&engine);
- component.loadUrl(testFileUrl("basicapplicationwindow.qml"));
- QObject* created = component.create();
- QScopedPointer<QObject> cleanup(created);
- QVERIFY(created);
-
- QQuickWindow* window = qobject_cast<QQuickWindow*>(created);
- QVERIFY(window);
- QVERIFY(!window->isVisible());
-
- QCOMPARE(created->property("title"), QVariant("Test Application Window"));
-
- QQuickItem* statusBar = qvariant_cast<QQuickItem*>(created->property("statusBar"));
- QVERIFY(!statusBar);
-
- QQuickItem* header = qvariant_cast<QQuickItem*>(created->property("header"));
- QVERIFY(!header);
-
- QQuickItem* footer = qvariant_cast<QQuickItem*>(created->property("footer"));
- QVERIFY(!footer);
-}
-
-void tst_applicationwindow::activeFocusOnTab1()
-{
- QQmlEngine engine;
- QQmlComponent component(&engine);
- component.loadUrl(testFileUrl("activefocusontab.qml"));
- QObject* created = component.create();
- QScopedPointer<QObject> cleanup(created);
- QVERIFY(created);
-
- QQuickWindow* window = qobject_cast<QQuickWindow*>(created);
- QVERIFY(window);
- window->show();
- window->requestActivate();
- QVERIFY(QTest::qWaitForWindowActive(window));
- QVERIFY(QGuiApplication::focusWindow() == window);
-
- QQuickItem* contentItem = window->contentItem();
- QVERIFY(contentItem);
- QVERIFY(contentItem->hasActiveFocus());
-
- QQuickItem* item = findItem<QQuickItem>(window->contentItem(), "sub1");
- QVERIFY(item);
- QVERIFY(!item->hasActiveFocus());
-
- // Tab: contentItem->sub1
- QKeyEvent key(QEvent::KeyPress, Qt::Key_Tab, Qt::NoModifier, "", false, 1);
- QGuiApplication::sendEvent(window, &key);
- QVERIFY(key.isAccepted());
-
- item = findItem<QQuickItem>(window->contentItem(), "sub1");
- QVERIFY(item);
- QVERIFY(item->hasActiveFocus());
-
- // Tab: sub1->sub2
- key = QKeyEvent(QEvent::KeyPress, Qt::Key_Tab, Qt::NoModifier, "", false, 1);
- QGuiApplication::sendEvent(window, &key);
- QVERIFY(key.isAccepted());
-
- item = findItem<QQuickItem>(window->contentItem(), "sub2");
- QVERIFY(item);
- QVERIFY(item->hasActiveFocus());
-
- // Tab: sub2->sub1
- key = QKeyEvent(QEvent::KeyPress, Qt::Key_Tab, Qt::NoModifier, "", false, 1);
- QGuiApplication::sendEvent(window, &key);
- QVERIFY(key.isAccepted());
-
- item = findItem<QQuickItem>(window->contentItem(), "sub1");
- QVERIFY(item);
- QVERIFY(item->hasActiveFocus());
-}
-
-void tst_applicationwindow::activeFocusOnTab2()
-{
- QQmlEngine engine;
- QQmlComponent component(&engine);
- component.loadUrl(testFileUrl("activefocusontab.qml"));
- QObject* created = component.create();
- QScopedPointer<QObject> cleanup(created);
- QVERIFY(created);
-
- QQuickWindow* window = qobject_cast<QQuickWindow*>(created);
- QVERIFY(window);
- window->show();
- window->requestActivate();
- QVERIFY(QTest::qWaitForWindowActive(window));
- QVERIFY(QGuiApplication::focusWindow() == window);
-
- QQuickItem* contentItem = window->contentItem();
- QVERIFY(contentItem);
- QVERIFY(contentItem->hasActiveFocus());
-
- QQuickItem* item = findItem<QQuickItem>(window->contentItem(), "sub2");
- QVERIFY(item);
- QVERIFY(!item->hasActiveFocus());
-
- // BackTab: contentItem->sub2
- QKeyEvent key(QEvent::KeyPress, Qt::Key_Tab, Qt::ShiftModifier, "", false, 1);
- QGuiApplication::sendEvent(window, &key);
- QVERIFY(key.isAccepted());
-
- item = findItem<QQuickItem>(window->contentItem(), "sub2");
- QVERIFY(item);
- QVERIFY(item->hasActiveFocus());
-
- // BackTab: sub2->sub1
- key = QKeyEvent(QEvent::KeyPress, Qt::Key_Tab, Qt::ShiftModifier, "", false, 1);
- QGuiApplication::sendEvent(window, &key);
- QVERIFY(key.isAccepted());
-
- item = findItem<QQuickItem>(window->contentItem(), "sub1");
- QVERIFY(item);
- QVERIFY(item->hasActiveFocus());
-
- // BackTab: sub1->sub2
- key = QKeyEvent(QEvent::KeyPress, Qt::Key_Tab, Qt::ShiftModifier, "", false, 1);
- QGuiApplication::sendEvent(window, &key);
- QVERIFY(key.isAccepted());
-
- item = findItem<QQuickItem>(window->contentItem(), "sub2");
- QVERIFY(item);
- QVERIFY(item->hasActiveFocus());
-}
-
-void tst_applicationwindow::defaultFocus()
-{
- QQmlEngine engine;
- QQmlComponent component(&engine);
- component.loadUrl(testFileUrl("defaultFocus.qml"));
- QObject* created = component.create();
- QScopedPointer<QObject> cleanup(created);
- Q_UNUSED(cleanup);
- QVERIFY(created);
-
- QQuickWindow* window = qobject_cast<QQuickWindow*>(created);
- QVERIFY(window);
- window->show();
- window->requestActivate();
- QVERIFY(QTest::qWaitForWindowActive(window));
- QVERIFY(QGuiApplication::focusWindow() == window);
-
- QQuickItem* contentItem = window->contentItem();
- QVERIFY(contentItem);
- QVERIFY(contentItem->hasActiveFocus());
-
- // A single item in an ApplicationWindow with focus: true should receive focus.
- QQuickItem* item = findItem<QQuickItem>(window->contentItem(), "item");
- QVERIFY(item);
- QVERIFY(item->hasFocus());
- QVERIFY(item->hasActiveFocus());
-}
-
-void tst_applicationwindow::implicitFill()
-{
- QQmlEngine engine;
- QQmlComponent component(&engine);
- component.loadUrl(testFileUrl("fill.qml"));
- QObject* created = component.create();
- QScopedPointer<QObject> cleanup(created);
- QVERIFY(created);
-
- QQuickWindow* window = qobject_cast<QQuickWindow*>(created);
- QVERIFY(window);
- QVERIFY(!window->isVisible());
- QCOMPARE(window->width(), 400);
- QCOMPARE(window->height(), 400);
-
- window->show();
- QVERIFY(QTest::qWaitForWindowActive(window));
-
- QQuickItem *stackView = window->property("stackView").value<QQuickItem*>();
- QVERIFY(stackView);
- QCOMPARE(stackView->width(), 400.0);
- QCOMPARE(stackView->height(), 400.0);
-
- QQuickItem *nextItem = window->property("nextItem").value<QQuickItem*>();
- QVERIFY(nextItem);
-
- QVERIFY(QMetaObject::invokeMethod(window, "pushNextItem"));
- QCOMPARE(nextItem->width(), 400.0);
- QCOMPARE(nextItem->height(), 400.0);
-}
-
-void tst_applicationwindow::attachedProperties()
-{
- QQmlEngine engine;
- QQmlComponent component(&engine);
- component.loadUrl(testFileUrl("attachedProperties.qml"));
-
- QScopedPointer<QObject> object(component.create());
- QVERIFY2(!object.isNull(), qPrintable(component.errorString()));
-
- QQuickApplicationWindow *window = qobject_cast<QQuickApplicationWindow *>(object.data());
- QVERIFY(window);
-
- QQuickItem *childControl = object->property("childControl").value<QQuickItem *>();
- QVERIFY(childControl);
- QCOMPARE(childControl->property("attached_window").value<QQuickApplicationWindow *>(), window);
- QCOMPARE(childControl->property("attached_contentItem").value<QQuickItem *>(), window->contentItem());
- QCOMPARE(childControl->property("attached_activeFocusControl").value<QQuickItem *>(), window->activeFocusControl());
- QCOMPARE(childControl->property("attached_header").value<QQuickItem *>(), window->header());
- QCOMPARE(childControl->property("attached_footer").value<QQuickItem *>(), window->footer());
- QCOMPARE(childControl->property("attached_overlay").value<QQuickItem *>(), window->overlay());
-
- QQuickItem *childItem = object->property("childItem").value<QQuickItem *>();
- QVERIFY(childItem);
- QCOMPARE(childItem->property("attached_window").value<QQuickApplicationWindow *>(), window);
- QCOMPARE(childItem->property("attached_contentItem").value<QQuickItem *>(), window->contentItem());
- QCOMPARE(childItem->property("attached_activeFocusControl").value<QQuickItem *>(), window->activeFocusControl());
- QCOMPARE(childItem->property("attached_header").value<QQuickItem *>(), window->header());
- QCOMPARE(childItem->property("attached_footer").value<QQuickItem *>(), window->footer());
- QCOMPARE(childItem->property("attached_overlay").value<QQuickItem *>(), window->overlay());
-
- QObject *childObject = object->property("childObject").value<QObject *>();
- QVERIFY(childObject);
- QVERIFY(!childObject->property("attached_window").value<QQuickApplicationWindow *>());
- QVERIFY(!childObject->property("attached_contentItem").value<QQuickItem *>());
- QVERIFY(!childObject->property("attached_activeFocusControl").value<QQuickItem *>());
- QVERIFY(!childObject->property("attached_header").value<QQuickItem *>());
- QVERIFY(!childObject->property("attached_footer").value<QQuickItem *>());
- QVERIFY(!childObject->property("attached_overlay").value<QQuickItem *>());
-
- QQuickWindow *childWindow = object->property("childWindow").value<QQuickWindow *>();
- QVERIFY(childWindow);
- QVERIFY(!childWindow->property("attached_window").value<QQuickApplicationWindow *>());
- QVERIFY(!childWindow->property("attached_contentItem").value<QQuickItem *>());
- QVERIFY(!childWindow->property("attached_activeFocusControl").value<QQuickItem *>());
- QVERIFY(!childWindow->property("attached_header").value<QQuickItem *>());
- QVERIFY(!childWindow->property("attached_footer").value<QQuickItem *>());
- QVERIFY(!childWindow->property("attached_overlay").value<QQuickItem *>());
-
- QQuickItem *childWindowControl = object->property("childWindowControl").value<QQuickItem *>();
- QVERIFY(childWindowControl);
- QVERIFY(!childWindowControl->property("attached_window").value<QQuickApplicationWindow *>());
- QVERIFY(!childWindowControl->property("attached_contentItem").value<QQuickItem *>());
- QVERIFY(!childWindowControl->property("attached_activeFocusControl").value<QQuickItem *>());
- QVERIFY(!childWindowControl->property("attached_header").value<QQuickItem *>());
- QVERIFY(!childWindowControl->property("attached_footer").value<QQuickItem *>());
- QCOMPARE(childWindowControl->property("attached_overlay").value<QQuickItem *>(), QQuickOverlay::overlay(childWindow));
-
- QQuickItem *childWindowItem = object->property("childWindowItem").value<QQuickItem *>();
- QVERIFY(childWindowItem);
- QVERIFY(!childWindowItem->property("attached_window").value<QQuickApplicationWindow *>());
- QVERIFY(!childWindowItem->property("attached_contentItem").value<QQuickItem *>());
- QVERIFY(!childWindowItem->property("attached_activeFocusControl").value<QQuickItem *>());
- QVERIFY(!childWindowItem->property("attached_header").value<QQuickItem *>());
- QVERIFY(!childWindowItem->property("attached_footer").value<QQuickItem *>());
- QCOMPARE(childWindowItem->property("attached_overlay").value<QQuickItem *>(), QQuickOverlay::overlay(childWindow));
-
- QObject *childWindowObject = object->property("childWindowObject").value<QObject *>();
- QVERIFY(childWindowObject);
- QVERIFY(!childWindowObject->property("attached_window").value<QQuickApplicationWindow *>());
- QVERIFY(!childWindowObject->property("attached_contentItem").value<QQuickItem *>());
- QVERIFY(!childWindowObject->property("attached_activeFocusControl").value<QQuickItem *>());
- QVERIFY(!childWindowObject->property("attached_header").value<QQuickItem *>());
- QVERIFY(!childWindowObject->property("attached_footer").value<QQuickItem *>());
- QVERIFY(!childWindowObject->property("attached_overlay").value<QQuickItem *>());
-
- QQuickApplicationWindow *childAppWindow = object->property("childAppWindow").value<QQuickApplicationWindow *>();
- QVERIFY(childAppWindow);
- QVERIFY(!childAppWindow->property("attached_window").value<QQuickApplicationWindow *>());
- QVERIFY(!childAppWindow->property("attached_contentItem").value<QQuickItem *>());
- QVERIFY(!childAppWindow->property("attached_activeFocusControl").value<QQuickItem *>());
- QVERIFY(!childAppWindow->property("attached_header").value<QQuickItem *>());
- QVERIFY(!childAppWindow->property("attached_footer").value<QQuickItem *>());
- QVERIFY(!childAppWindow->property("attached_overlay").value<QQuickItem *>());
-
- QQuickItem *childAppWindowControl = object->property("childAppWindowControl").value<QQuickItem *>();
- QVERIFY(childAppWindowControl);
- QCOMPARE(childAppWindowControl->property("attached_window").value<QQuickApplicationWindow *>(), childAppWindow);
- QCOMPARE(childAppWindowControl->property("attached_contentItem").value<QQuickItem *>(), childAppWindow->contentItem());
- QCOMPARE(childAppWindowControl->property("attached_activeFocusControl").value<QQuickItem *>(), childAppWindow->activeFocusControl());
- QCOMPARE(childAppWindowControl->property("attached_header").value<QQuickItem *>(), childAppWindow->header());
- QCOMPARE(childAppWindowControl->property("attached_footer").value<QQuickItem *>(), childAppWindow->footer());
- QCOMPARE(childAppWindowControl->property("attached_overlay").value<QQuickItem *>(), childAppWindow->overlay());
-
- QQuickItem *childAppWindowItem = object->property("childAppWindowItem").value<QQuickItem *>();
- QVERIFY(childAppWindowItem);
- QCOMPARE(childAppWindowItem->property("attached_window").value<QQuickApplicationWindow *>(), childAppWindow);
- QCOMPARE(childAppWindowItem->property("attached_contentItem").value<QQuickItem *>(), childAppWindow->contentItem());
- QCOMPARE(childAppWindowItem->property("attached_activeFocusControl").value<QQuickItem *>(), childAppWindow->activeFocusControl());
- QCOMPARE(childAppWindowItem->property("attached_header").value<QQuickItem *>(), childAppWindow->header());
- QCOMPARE(childAppWindowItem->property("attached_footer").value<QQuickItem *>(), childAppWindow->footer());
- QCOMPARE(childAppWindowItem->property("attached_overlay").value<QQuickItem *>(), childAppWindow->overlay());
-
- QObject *childAppWindowObject = object->property("childAppWindowObject").value<QObject *>();
- QVERIFY(childAppWindowObject);
- QVERIFY(!childAppWindowObject->property("attached_window").value<QQuickApplicationWindow *>());
- QVERIFY(!childAppWindowObject->property("attached_contentItem").value<QQuickItem *>());
- QVERIFY(!childAppWindowObject->property("attached_activeFocusControl").value<QQuickItem *>());
- QVERIFY(!childAppWindowObject->property("attached_header").value<QQuickItem *>());
- QVERIFY(!childAppWindowObject->property("attached_footer").value<QQuickItem *>());
- QVERIFY(!childAppWindowObject->property("attached_overlay").value<QQuickItem *>());
-
- window->show();
- window->requestActivate();
- QVERIFY(QTest::qWaitForWindowActive(window));
-
- QVERIFY(!childControl->hasActiveFocus());
- childControl->forceActiveFocus();
- QTRY_VERIFY(childControl->hasActiveFocus());
- QCOMPARE(window->activeFocusItem(), childControl);
- QCOMPARE(childControl->property("attached_activeFocusControl").value<QQuickItem *>(), childControl);
-
- QQuickItem *header = new QQuickItem;
- window->setHeader(header);
- QCOMPARE(window->header(), header);
- QCOMPARE(childControl->property("attached_header").value<QQuickItem *>(), header);
-
- QQuickItem *footer = new QQuickItem;
- window->setFooter(footer);
- QCOMPARE(window->footer(), footer);
- QCOMPARE(childControl->property("attached_footer").value<QQuickItem *>(), footer);
-
- childAppWindow->show();
- childAppWindow->requestActivate();
- QVERIFY(QTest::qWaitForWindowActive(childAppWindow));
-
- QVERIFY(!childAppWindowControl->hasActiveFocus());
- childAppWindowControl->forceActiveFocus();
- QTRY_VERIFY(childAppWindowControl->hasActiveFocus());
- QCOMPARE(childAppWindow->activeFocusItem(), childAppWindowControl);
- QCOMPARE(childAppWindowControl->property("attached_activeFocusControl").value<QQuickItem *>(), childAppWindowControl);
-
- childControl->setParentItem(childAppWindow->contentItem());
- QCOMPARE(childControl->window(), childAppWindow);
- QCOMPARE(childControl->property("attached_window").value<QQuickApplicationWindow *>(), childAppWindow);
- QCOMPARE(childControl->property("attached_contentItem").value<QQuickItem *>(), childAppWindow->contentItem());
- QCOMPARE(childControl->property("attached_activeFocusControl").value<QQuickItem *>(), childAppWindow->activeFocusControl());
- QCOMPARE(childControl->property("attached_header").value<QQuickItem *>(), childAppWindow->header());
- QCOMPARE(childControl->property("attached_footer").value<QQuickItem *>(), childAppWindow->footer());
- QCOMPARE(childControl->property("attached_overlay").value<QQuickItem *>(), childAppWindow->overlay());
-
- childItem->setParentItem(childAppWindow->contentItem());
- QCOMPARE(childItem->window(), childAppWindow);
- QCOMPARE(childItem->property("attached_window").value<QQuickApplicationWindow *>(), childAppWindow);
- QCOMPARE(childItem->property("attached_contentItem").value<QQuickItem *>(), childAppWindow->contentItem());
- QCOMPARE(childItem->property("attached_activeFocusControl").value<QQuickItem *>(), childAppWindow->activeFocusControl());
- QCOMPARE(childItem->property("attached_header").value<QQuickItem *>(), childAppWindow->header());
- QCOMPARE(childItem->property("attached_footer").value<QQuickItem *>(), childAppWindow->footer());
- QCOMPARE(childItem->property("attached_overlay").value<QQuickItem *>(), childAppWindow->overlay());
-
- childControl->setParentItem(nullptr);
- QVERIFY(!childControl->window());
- QVERIFY(!childControl->property("attached_window").value<QQuickApplicationWindow *>());
- QVERIFY(!childControl->property("attached_contentItem").value<QQuickItem *>());
- QVERIFY(!childControl->property("attached_activeFocusControl").value<QQuickItem *>());
- QVERIFY(!childControl->property("attached_header").value<QQuickItem *>());
- QVERIFY(!childControl->property("attached_footer").value<QQuickItem *>());
- QVERIFY(!childControl->property("attached_overlay").value<QQuickItem *>());
-
- childItem->setParentItem(nullptr);
- QVERIFY(!childItem->window());
- QVERIFY(!childItem->property("attached_window").value<QQuickApplicationWindow *>());
- QVERIFY(!childItem->property("attached_contentItem").value<QQuickItem *>());
- QVERIFY(!childItem->property("attached_activeFocusControl").value<QQuickItem *>());
- QVERIFY(!childItem->property("attached_header").value<QQuickItem *>());
- QVERIFY(!childItem->property("attached_footer").value<QQuickItem *>());
- QVERIFY(!childItem->property("attached_overlay").value<QQuickItem *>());
-
- // ### A temporary workaround to unblock the CI until the crash caused
- // by https://codereview.qt-project.org/#/c/108517/ has been fixed...
- window->hide();
- qApp->processEvents();
-}
-
-void tst_applicationwindow::font()
-{
- QQmlEngine engine;
- QQmlComponent component(&engine);
- component.loadUrl(testFileUrl("font.qml"));
- QObject* created = component.create();
- QScopedPointer<QObject> cleanup(created);
- QVERIFY(created);
-
- QQuickApplicationWindow* window = qobject_cast<QQuickApplicationWindow*>(created);
- QVERIFY(window);
- QVERIFY(!window->isVisible());
- QCOMPARE(window->width(), 400);
- QCOMPARE(window->height(), 400);
-
- window->show();
- QVERIFY(QTest::qWaitForWindowActive(window));
-
- QFont font = window->font();
-
- QQuickControl *mainItem = window->property("mainItem").value<QQuickControl*>();
- QVERIFY(mainItem);
- QCOMPARE(mainItem->width(), 400.0);
- QCOMPARE(mainItem->height(), 400.0);
- QCOMPARE(mainItem->font(), font);
-
- QQuickControl *item2 = mainItem->property("item_2").value<QQuickControl*>();
- QVERIFY(item2);
- QQuickControl *item3 = mainItem->property("item_3").value<QQuickControl*>();
- QVERIFY(item3);
- QQuickTextArea *item4 = mainItem->property("item_4").value<QQuickTextArea*>();
- QVERIFY(item4);
- QQuickTextField *item5 = mainItem->property("item_5").value<QQuickTextField*>();
- QVERIFY(item5);
- QQuickLabel *item6 = mainItem->property("item_6").value<QQuickLabel*>();
- QVERIFY(item6);
-
- QCOMPARE(item2->font(), font);
- QCOMPARE(item3->font(), font);
- QCOMPARE(item4->font(), font);
- QCOMPARE(item5->font(), font);
- QCOMPARE(item6->font(), font);
-
- int pointSize = font.pointSize();
- font.setPixelSize(pointSize + 5);
- window->setFont(font);
-
- QCOMPARE(window->font(), font);
- QCOMPARE(mainItem->font(), font);
- QCOMPARE(item2->font(), font);
- QCOMPARE(item3->font(), font);
- QCOMPARE(item4->font(), font);
- QCOMPARE(item5->font(), font);
- QCOMPARE(item6->font(), font);
-}
-
-class TestTheme : public QQuickProxyTheme
-{
-public:
- TestTheme(QPlatformTheme *theme) : QQuickProxyTheme(theme), m_font("Courier")
- { QGuiApplicationPrivate::platform_theme = this; }
-
- const QFont *font(Font type = SystemFont) const override
- {
- Q_UNUSED(type);
- return &m_font;
- }
-
- QFont m_font;
-};
-
-void tst_applicationwindow::defaultFont()
-{
- TestTheme theme(QGuiApplicationPrivate::platform_theme);
-
- QQmlEngine engine;
- QQmlComponent component(&engine);
- component.setData("import QtQuick.Controls 2.1; ApplicationWindow { }", QUrl());
-
- QScopedPointer<QQuickApplicationWindow> window;
- window.reset(static_cast<QQuickApplicationWindow *>(component.create()));
- QVERIFY(!window.isNull());
- QCOMPARE(window->font(), *theme.font());
-}
-
-void tst_applicationwindow::locale()
-{
- QQmlEngine engine;
- QQmlComponent component(&engine);
- component.loadUrl(testFileUrl("locale.qml"));
- QObject* created = component.create();
- QScopedPointer<QObject> cleanup(created);
- QVERIFY(created);
-
- QQuickApplicationWindow* window = qobject_cast<QQuickApplicationWindow*>(created);
- QVERIFY(window);
- QVERIFY(!window->isVisible());
- QCOMPARE(window->width(), 400);
- QCOMPARE(window->height(), 400);
-
- window->show();
- QVERIFY(QTest::qWaitForWindowActive(window));
-
- QLocale l = window->locale();
-
- QQuickControl *mainItem = window->property("mainItem").value<QQuickControl*>();
- QVERIFY(mainItem);
- QCOMPARE(mainItem->width(), 400.0);
- QCOMPARE(mainItem->height(), 400.0);
- QCOMPARE(mainItem->locale(), l);
-
- QQuickControl *item2 = mainItem->property("item_2").value<QQuickControl*>();
- QVERIFY(item2);
- QQuickControl *item3 = mainItem->property("item_3").value<QQuickControl*>();
- QVERIFY(item3);
-
- QCOMPARE(item2->locale(), l);
- QCOMPARE(item3->locale(), l);
-
- l = QLocale("en_US");
- window->setLocale(l);
-
- QCOMPARE(window->locale(), l);
- QCOMPARE(mainItem->locale(), l);
- QCOMPARE(item2->locale(), l);
- QCOMPARE(item3->locale(), l);
-
- l = QLocale("ar_EG");
- window->setLocale(l);
-
- QCOMPARE(window->locale(), l);
- QCOMPARE(mainItem->locale(), l);
- QCOMPARE(item2->locale(), l);
- QCOMPARE(item3->locale(), l);
-}
-
-void tst_applicationwindow::activeFocusControl_data()
-{
- QTest::addColumn<QByteArray>("containerName");
- QTest::addColumn<QByteArray>("activeFocusItemName");
- QTest::addColumn<QByteArray>("activeFocusControlName");
-
- QTest::newRow("Column:TextInput") << QByteArray("container_column") << QByteArray("textInput_column") << QByteArray();
- QTest::newRow("Column:TextEdit") << QByteArray("container_column") << QByteArray("textEdit_column") << QByteArray();
- QTest::newRow("Column:TextField") << QByteArray("container_column") << QByteArray("textField_column") << QByteArray("textField_column");
- QTest::newRow("Column:TextArea") << QByteArray("container_column") << QByteArray("textArea_column") << QByteArray("textArea_column");
- QTest::newRow("Column:SpinBox") << QByteArray("container_column") << QByteArray("spinContent_column") << QByteArray("spinBox_column");
-
- QTest::newRow("Frame:TextInput") << QByteArray("container_frame") << QByteArray("textInput_frame") << QByteArray("container_frame");
- QTest::newRow("Frame:TextEdit") << QByteArray("container_frame") << QByteArray("textEdit_frame") << QByteArray("container_frame");
- QTest::newRow("Frame:TextField") << QByteArray("container_frame") << QByteArray("textField_frame") << QByteArray("textField_frame");
- QTest::newRow("Frame:TextArea") << QByteArray("container_frame") << QByteArray("textArea_frame") << QByteArray("textArea_frame");
- QTest::newRow("Frame:SpinBox") << QByteArray("container_frame") << QByteArray("spinContent_frame") << QByteArray("spinBox_frame");
-}
-
-void tst_applicationwindow::activeFocusControl()
-{
- QFETCH(QByteArray, containerName);
- QFETCH(QByteArray, activeFocusItemName);
- QFETCH(QByteArray, activeFocusControlName);
-
- QQmlEngine engine;
- QQmlComponent component(&engine);
- component.loadUrl(testFileUrl("activeFocusControl.qml"));
- QScopedPointer<QObject> object(component.create());
- QVERIFY(!object.isNull());
-
- QQuickApplicationWindow* window = qobject_cast<QQuickApplicationWindow*>(object.data());
- QVERIFY(window);
- QVERIFY(!window->isVisible());
- QCOMPARE(window->width(), 400);
- QCOMPARE(window->height(), 400);
-
- window->show();
- QVERIFY(QTest::qWaitForWindowActive(window));
-
- QQuickItem *container = window->property(containerName).value<QQuickItem*>();
- QVERIFY(container);
-
- QQuickItem *activeFocusItem = window->property(activeFocusItemName).value<QQuickItem*>();
- QVERIFY(activeFocusItem);
- activeFocusItem->forceActiveFocus();
- QVERIFY(activeFocusItem->hasActiveFocus());
- QCOMPARE(window->activeFocusItem(), activeFocusItem);
-
- QQuickItem *activeFocusControl = window->property(activeFocusControlName).value<QQuickItem*>();
- if (activeFocusControlName.isEmpty()) {
- QVERIFY(!activeFocusControl);
- } else {
- QVERIFY(activeFocusControl);
- QVERIFY(activeFocusControl->hasActiveFocus());
- }
- QCOMPARE(window->activeFocusControl(), activeFocusControl);
-}
-
-void tst_applicationwindow::focusAfterPopupClosed()
-{
- QQmlEngine engine;
- QQmlComponent component(&engine);
- component.loadUrl(testFileUrl("focusAfterPopupClosed.qml"));
- QScopedPointer<QQuickWindow> window(qobject_cast<QQuickWindow*>(component.create()));
- QVERIFY(window);
-
- window->show();
- window->requestActivate();
- QVERIFY(QTest::qWaitForWindowActive(window.data()));
- QVERIFY(QGuiApplication::focusWindow() == window.data());
-
- QQuickItem* contentItem = window->contentItem();
- QVERIFY(contentItem);
- QVERIFY(contentItem->hasActiveFocus());
-
- QQuickItem* focusScope = window->property("focusScope").value<QQuickItem*>();
- QVERIFY(focusScope);
- QVERIFY(focusScope->hasActiveFocus());
-
- QSignalSpy focusScopeSpy(window.data(), SIGNAL(focusScopeKeyPressed()));
- QTest::keyClick(window.data(), Qt::Key_Space);
- QCOMPARE(focusScopeSpy.count(), 1);
-
- // Open the menu.
- QQuickItem* toolButton = window->property("toolButton").value<QQuickItem*>();
- QVERIFY(toolButton);
- QTest::mouseClick(window.data(), Qt::LeftButton, Qt::NoModifier,
- toolButton->mapFromScene(QPointF(toolButton->width() / 2, toolButton->height() / 2)).toPoint());
- QVERIFY(!focusScope->hasActiveFocus());
-
- // The FocusScope shouldn't receive any key events while the menu is open.
- QTest::keyClick(window.data(), Qt::Key_Space);
- QCOMPARE(focusScopeSpy.count(), 1);
-
- // Close the menu. The FocusScope should regain focus.
- QTest::keyClick(window.data(), Qt::Key_Escape);
- QVERIFY(focusScope->hasActiveFocus());
-
- QTest::keyClick(window.data(), Qt::Key_Space);
- QCOMPARE(focusScopeSpy.count(), 2);
-
- QQuickPopup *focusPopup = window->property("focusPopup").value<QQuickPopup*>();
- QVERIFY(focusPopup);
- QVERIFY(!focusPopup->hasActiveFocus());
-
- focusPopup->open();
- QVERIFY(focusPopup->isVisible());
-
- QSignalSpy focusPopupSpy(window.data(), SIGNAL(focusPopupKeyPressed()));
- QTest::keyClick(window.data(), Qt::Key_Space);
- QCOMPARE(focusPopupSpy.count(), 1);
-
- QQuickMenu *fileMenu = window->property("fileMenu").value<QQuickMenu*>();
- QVERIFY(fileMenu);
- fileMenu->open();
- QVERIFY(fileMenu->isVisible());
-
- // The Popup shouldn't receive any key events while the menu is open.
- QTest::keyClick(window.data(), Qt::Key_Space);
- QCOMPARE(focusPopupSpy.count(), 1);
-
- // Close the menu. The Popup should regain focus.
- QTest::keyClick(window.data(), Qt::Key_Escape);
- QVERIFY(focusPopup->hasActiveFocus());
-
- QTest::keyClick(window.data(), Qt::Key_Space);
- QCOMPARE(focusPopupSpy.count(), 2);
-
- // Close the popup. The FocusScope should regain focus.
- QTest::keyClick(window.data(), Qt::Key_Escape);
- QVERIFY(focusScope->hasActiveFocus());
-
- QTest::keyClick(window.data(), Qt::Key_Space);
- QCOMPARE(focusScopeSpy.count(), 3);
-}
-
-void tst_applicationwindow::clearFocusOnDestruction()
-{
- QQmlEngine engine;
- QQmlComponent component(&engine);
- component.loadUrl(testFileUrl("clearfocusondestruction.qml"));
- QScopedPointer<QQuickWindow> window(qobject_cast<QQuickWindow*>(component.create()));
- QVERIFY(window);
-
- window->show();
- window->requestActivate();
- QVERIFY(QTest::qWaitForWindowActive(window.data()));
- QVERIFY(QGuiApplication::focusWindow() == window.data());
-
- QQuickItem* contentItem = window->contentItem();
- QVERIFY(contentItem);
- QVERIFY(contentItem->hasActiveFocus());
-
- QQuickItem* focusScope = window->property("textfield").value<QQuickItem*>();
- QVERIFY(focusScope);
- QVERIFY(focusScope->hasActiveFocus());
-
- QSignalSpy spy(window.data(), SIGNAL(activeFocusControlChanged()));
- // destroy the window, do not crash
- window.reset();
-
- /*
- QQuickWindow::activeFocusItemChanged() is emitted inconsistently and
- only for certain use cases. Ideally it should be emitted whenever a
- QQuickWindow with a focus item is destroyed, but it doesn't... It might
- also be favorable to not emit it for performance reason.
-
- However, activeFocusControlChanged() is emitted more consistently, which
- of course makes it inconsistent with the emission of
- activeFocusItemChanged()....
-
- Therefore, if you have good reasons to change the behavior (and not emit
- it) take the test below with a grain of salt.
- */
- QCOMPARE(spy.count(), 1);
-}
-
-void tst_applicationwindow::layout()
-{
- QQmlEngine engine;
- QQmlComponent component(&engine);
- component.loadUrl(testFileUrl("layout.qml"));
- QScopedPointer<QObject> object(component.create());
- QVERIFY(!object.isNull());
-
- QQuickApplicationWindow* window = qobject_cast<QQuickApplicationWindow*>(object.data());
- QVERIFY(window);
- QVERIFY(QTest::qWaitForWindowExposed(window));
-
- QQuickItem *content = window->contentItem();
- QVERIFY(content);
- QQuickItem *header = window->header();
- QVERIFY(header);
- QQuickItem *footer = window->footer();
- QVERIFY(footer);
-
- QCOMPARE(header->x(), 0.0);
- QCOMPARE(header->y(), -header->height());
- QCOMPARE(header->width(), qreal(window->width()));
- QVERIFY(header->height() > 0);
-
- QCOMPARE(footer->x(), 0.0);
- QCOMPARE(footer->y(), content->height());
- QCOMPARE(footer->width(), qreal(window->width()));
- QVERIFY(footer->height() > 0.0);
-
- QCOMPARE(content->x(), 0.0);
- QCOMPARE(content->y(), header->height());
- QCOMPARE(content->width(), qreal(window->width()));
- QCOMPARE(content->height(), window->height() - header->height() - footer->height());
-
- header->setVisible(false);
- QCOMPARE(content->x(), 0.0);
- QCOMPARE(content->y(), 0.0);
- QCOMPARE(content->width(), qreal(window->width()));
- QCOMPARE(content->height(), window->height() - footer->height());
-
- footer->setVisible(false);
- QCOMPARE(content->x(), 0.0);
- QCOMPARE(content->y(), 0.0);
- QCOMPARE(content->width(), qreal(window->width()));
- QCOMPARE(content->height(), qreal(window->height()));
-}
-
-class FriendlyApplicationWindow : public QQuickApplicationWindow
-{
- friend class tst_applicationwindow;
-};
-
-void tst_applicationwindow::componentComplete()
-{
- FriendlyApplicationWindow cppWindow;
- QVERIFY(cppWindow.isComponentComplete());
-
- QQmlEngine engine;
- QQmlComponent component(&engine);
- component.setData("import QtQuick.Controls 2.2; ApplicationWindow { }", QUrl());
-
- FriendlyApplicationWindow *qmlWindow = static_cast<FriendlyApplicationWindow *>(component.beginCreate(engine.rootContext()));
- QVERIFY(qmlWindow);
- QVERIFY(!qmlWindow->isComponentComplete());
-
- component.completeCreate();
- QVERIFY(qmlWindow->isComponentComplete());
-}
-
-QTEST_MAIN(tst_applicationwindow)
-
-#include "tst_applicationwindow.moc"