aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/quickcontrols2/qquickpopup
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/quickcontrols2/qquickpopup')
-rw-r--r--tests/auto/quickcontrols2/qquickpopup/BLACKLIST17
-rw-r--r--tests/auto/quickcontrols2/qquickpopup/CMakeLists.txt49
-rw-r--r--tests/auto/quickcontrols2/qquickpopup/data/activeFocusOnClose1.qml69
-rw-r--r--tests/auto/quickcontrols2/qquickpopup/data/activeFocusOnClose2.qml79
-rw-r--r--tests/auto/quickcontrols2/qquickpopup/data/activeFocusOnClose3.qml78
-rw-r--r--tests/auto/quickcontrols2/qquickpopup/data/activeFocusOnClosingSeveralPopups.qml80
-rw-r--r--tests/auto/quickcontrols2/qquickpopup/data/applicationwindow-hover.qml79
-rw-r--r--tests/auto/quickcontrols2/qquickpopup/data/applicationwindow-wheel.qml81
-rw-r--r--tests/auto/quickcontrols2/qquickpopup/data/applicationwindow.qml93
-rw-r--r--tests/auto/quickcontrols2/qquickpopup/data/centerInOverlayWithinStackViewItem.qml80
-rw-r--r--tests/auto/quickcontrols2/qquickpopup/data/closeOnEscapeWithNestedPopups.qml112
-rw-r--r--tests/auto/quickcontrols2/qquickpopup/data/closeOnEscapeWithVisiblePopup.qml16
-rw-r--r--tests/auto/quickcontrols2/qquickpopup/data/countChanged.qml80
-rw-r--r--tests/auto/quickcontrols2/qquickpopup/data/cursor.qml71
-rw-r--r--tests/auto/quickcontrols2/qquickpopup/data/destroyDuringExitTransition.qml114
-rw-r--r--tests/auto/quickcontrols2/qquickpopup/data/dialog.qml75
-rw-r--r--tests/auto/quickcontrols2/qquickpopup/data/disabledPalette.qml72
-rw-r--r--tests/auto/quickcontrols2/qquickpopup/data/grabber.qml80
-rw-r--r--tests/auto/quickcontrols2/qquickpopup/data/invisibleToolTipOpen.qml26
-rw-r--r--tests/auto/quickcontrols2/qquickpopup/data/nested.qml74
-rw-r--r--tests/auto/quickcontrols2/qquickpopup/data/orientation.qml76
-rw-r--r--tests/auto/quickcontrols2/qquickpopup/data/tabFence.qml97
-rw-r--r--tests/auto/quickcontrols2/qquickpopup/data/toolTipCrashOnClose.qml94
-rw-r--r--tests/auto/quickcontrols2/qquickpopup/data/window-hover.qml80
-rw-r--r--tests/auto/quickcontrols2/qquickpopup/data/window-wheel.qml81
-rw-r--r--tests/auto/quickcontrols2/qquickpopup/data/window.qml94
-rw-r--r--tests/auto/quickcontrols2/qquickpopup/tst_qquickpopup.cpp1477
27 files changed, 0 insertions, 3424 deletions
diff --git a/tests/auto/quickcontrols2/qquickpopup/BLACKLIST b/tests/auto/quickcontrols2/qquickpopup/BLACKLIST
deleted file mode 100644
index ebe6d040..00000000
--- a/tests/auto/quickcontrols2/qquickpopup/BLACKLIST
+++ /dev/null
@@ -1,17 +0,0 @@
-# See qtbase/src/testlib/qtestblacklist.cpp for format
-
-[overlay]
-macos # QTBUG-89938
-
-[zPolicy]
-macos # QTBUG-89938
-
-[closePolicy]
-macos # QTBUG-89938
-
-# QTBUG-94251
-[closePolicy]
-opensuse-leap
-
-[cursorShape]
-opensuse-leap
diff --git a/tests/auto/quickcontrols2/qquickpopup/CMakeLists.txt b/tests/auto/quickcontrols2/qquickpopup/CMakeLists.txt
deleted file mode 100644
index ad0c89c9..00000000
--- a/tests/auto/quickcontrols2/qquickpopup/CMakeLists.txt
+++ /dev/null
@@ -1,49 +0,0 @@
-# Generated from qquickpopup.pro.
-
-#####################################################################
-## tst_qquickpopup Test:
-#####################################################################
-
-# Collect test data
-file(GLOB_RECURSE test_data_glob
- RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
- data/*)
-list(APPEND test_data ${test_data_glob})
-
-qt_internal_add_test(tst_qquickpopup
- SOURCES
- ../shared/qtest_quickcontrols.h
- ../shared/util.cpp ../shared/util.h
- ../shared/visualtestutil.cpp ../shared/visualtestutil.h
- tst_qquickpopup.cpp
- DEFINES
- QQC2_IMPORT_PATH=\\\"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/quickcontrols2\\\"
- PUBLIC_LIBRARIES
- Qt::CorePrivate
- Qt::Gui
- Qt::GuiPrivate
- Qt::QmlPrivate
- Qt::QuickControls2
- Qt::QuickControls2Private
- Qt::QuickPrivate
- Qt::QuickTemplates2Private
- Qt::QuickTest
- Qt::TestPrivate
- TESTDATA ${test_data}
-)
-
-#### Keys ignored in scope 1:.:.:qquickpopup.pro:<TRUE>:
-# OTHER_FILES = "data/*.qml"
-
-## Scopes:
-#####################################################################
-
-qt_internal_extend_target(tst_qquickpopup CONDITION ANDROID OR IOS
- DEFINES
- QT_QMLTEST_DATADIR=\\\":/data\\\"
-)
-
-qt_internal_extend_target(tst_qquickpopup CONDITION NOT ANDROID AND NOT IOS
- DEFINES
- QT_QMLTEST_DATADIR=\\\"${CMAKE_CURRENT_SOURCE_DIR}/data\\\"
-)
diff --git a/tests/auto/quickcontrols2/qquickpopup/data/activeFocusOnClose1.qml b/tests/auto/quickcontrols2/qquickpopup/data/activeFocusOnClose1.qml
deleted file mode 100644
index 9a76ebea..00000000
--- a/tests/auto/quickcontrols2/qquickpopup/data/activeFocusOnClose1.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
-import QtQuick.Controls
-
-ApplicationWindow {
- width: 400
- height: 400
-
- property alias focusedPopup: focusedPopup
- property alias nonFocusedPopup: nonFocusedPopup
-
- Popup {
- id: focusedPopup
- focus: true
- }
-
- Popup {
- id: nonFocusedPopup
- }
-}
diff --git a/tests/auto/quickcontrols2/qquickpopup/data/activeFocusOnClose2.qml b/tests/auto/quickcontrols2/qquickpopup/data/activeFocusOnClose2.qml
deleted file mode 100644
index 6d004b17..00000000
--- a/tests/auto/quickcontrols2/qquickpopup/data/activeFocusOnClose2.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
-import QtQuick.Controls
-
-ApplicationWindow {
- width: 400
- height: 400
-
- property alias popup1: popup1
- property alias popup2: popup2
- property alias closePopup2Button: closePopup2Button
-
- Popup {
- id: popup1
- focus: true
- }
-
- Popup {
- id: popup2
- focus: true
-
- Button {
- id: closePopup2Button
- onClicked: {
- popup1.contentItem.forceActiveFocus();
- popup2.close();
- }
- }
- }
-}
diff --git a/tests/auto/quickcontrols2/qquickpopup/data/activeFocusOnClose3.qml b/tests/auto/quickcontrols2/qquickpopup/data/activeFocusOnClose3.qml
deleted file mode 100644
index 8a682468..00000000
--- a/tests/auto/quickcontrols2/qquickpopup/data/activeFocusOnClose3.qml
+++ /dev/null
@@ -1,78 +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
-import QtQuick.Controls
-
-ApplicationWindow {
- width: 400
- height: 400
-
- property alias popup1: popup1
- property alias popup2: popup2
-
- Button {
- focus: true
- }
-
- Popup {
- id: popup1
- focus: true
- enter: Transition { PauseAnimation { duration: 200 } }
- exit: Transition { PauseAnimation { duration: 200 } }
- }
-
- Popup {
- id: popup2
- focus: true
- enter: Transition { PauseAnimation { duration: 100 } }
- exit: Transition { PauseAnimation { duration: 100 } }
- }
-}
diff --git a/tests/auto/quickcontrols2/qquickpopup/data/activeFocusOnClosingSeveralPopups.qml b/tests/auto/quickcontrols2/qquickpopup/data/activeFocusOnClosingSeveralPopups.qml
deleted file mode 100644
index adf23637..00000000
--- a/tests/auto/quickcontrols2/qquickpopup/data/activeFocusOnClosingSeveralPopups.qml
+++ /dev/null
@@ -1,80 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2019 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
-import QtQuick.Controls
-
-ApplicationWindow {
- width: 400
- height: 400
-
- property alias button: button
- property alias popup1: popup1
- property alias popup2: popup2
-
- Button {
- id: button
- focus: true
- }
-
- Popup {
- id: popup1
- focus: true
- enter: Transition { NumberAnimation { property: "opacity"; from: 0.0; to: 1.0; duration: 200 } }
- exit: Transition { NumberAnimation { property: "opacity"; from: 1.0; to: 0.0; duration: 200 } }
- }
-
- Popup {
- id: popup2
- focus: true
- enter: Transition { NumberAnimation { property: "opacity"; from: 0.0; to: 1.0; duration: 100 } }
- exit: Transition { NumberAnimation { property: "opacity"; from: 1.0; to: 0.0; duration: 100 } }
- }
-}
diff --git a/tests/auto/quickcontrols2/qquickpopup/data/applicationwindow-hover.qml b/tests/auto/quickcontrols2/qquickpopup/data/applicationwindow-hover.qml
deleted file mode 100644
index 80b22e6d..00000000
--- a/tests/auto/quickcontrols2/qquickpopup/data/applicationwindow-hover.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
-import QtQuick.Controls
-
-ApplicationWindow {
- width: 400
- height: 400
-
- property alias popup: popup
- property alias parentButton: parentButton
- property alias childButton: childButton
-
- Button {
- id: parentButton
- text: "Parent"
- anchors.fill: parent
-
- Popup {
- id: popup
- x: 1
- y: 1
- padding: 1
-
- Button {
- id: childButton
- text: "Child"
- }
- }
- }
-}
diff --git a/tests/auto/quickcontrols2/qquickpopup/data/applicationwindow-wheel.qml b/tests/auto/quickcontrols2/qquickpopup/data/applicationwindow-wheel.qml
deleted file mode 100644
index 8d3f7f95..00000000
--- a/tests/auto/quickcontrols2/qquickpopup/data/applicationwindow-wheel.qml
+++ /dev/null
@@ -1,81 +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
-import QtQuick.Window
-import QtQuick.Controls
-
-ApplicationWindow {
- id: window
- width: 400
- height: 400
-
- property alias popup: popup
- property alias popupSlider: popupSlider
- property alias contentSlider: contentSlider
-
- Slider {
- id: contentSlider
- anchors.fill: parent
- wheelEnabled: true
- }
-
- Popup {
- id: popup
- x: 50; y: 50
- implicitWidth: parent.width - 100
- implicitHeight: parent.height - 100
- clip: true
- contentItem: Slider {
- id: popupSlider
- wheelEnabled: true
- }
- }
-}
diff --git a/tests/auto/quickcontrols2/qquickpopup/data/applicationwindow.qml b/tests/auto/quickcontrols2/qquickpopup/data/applicationwindow.qml
deleted file mode 100644
index 7a298d96..00000000
--- a/tests/auto/quickcontrols2/qquickpopup/data/applicationwindow.qml
+++ /dev/null
@@ -1,93 +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
-import QtQuick.Controls
-
-ApplicationWindow {
- width: 400
- height: 400
-
- property alias popup: popup
- property alias popup2: popup2
- property alias button: button
-
- Button {
- id: button
- text: "Open"
- anchors.centerIn: parent
- anchors.verticalCenterOffset: -height
-
- Popup {
- id: popup
- y: parent.height
-
- Text {
- color: "white"
- text: "Hello, world!"
-
- MouseArea {
- anchors.fill: parent
- onClicked: popup.close()
- }
- }
- }
- }
-
- Popup {
- id: popup2
- y: popup.y
- z: 1
- contentItem: Text {
- text: "Popup2"
- font.pixelSize: 36
- }
- }
-}
diff --git a/tests/auto/quickcontrols2/qquickpopup/data/centerInOverlayWithinStackViewItem.qml b/tests/auto/quickcontrols2/qquickpopup/data/centerInOverlayWithinStackViewItem.qml
deleted file mode 100644
index aa25863a..00000000
--- a/tests/auto/quickcontrols2/qquickpopup/data/centerInOverlayWithinStackViewItem.qml
+++ /dev/null
@@ -1,80 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 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
-import QtQuick.Controls
-
-ApplicationWindow {
- width: 400
- height: 400
-
- property Popup popup: stackView.currentItem.popup
-
- StackView {
- id: stackView
- objectName: "stackView"
- anchors.fill: parent
-
- initialItem: Rectangle {
- objectName: "rectangle"
-
- property alias popup: popup
-
- Popup {
- id: popup
- objectName: "popup"
- width: 100
- height: 100
- visible: true
- anchors.centerIn: Overlay.overlay
- }
- }
- }
-}
diff --git a/tests/auto/quickcontrols2/qquickpopup/data/closeOnEscapeWithNestedPopups.qml b/tests/auto/quickcontrols2/qquickpopup/data/closeOnEscapeWithNestedPopups.qml
deleted file mode 100644
index 71ec4e2b..00000000
--- a/tests/auto/quickcontrols2/qquickpopup/data/closeOnEscapeWithNestedPopups.qml
+++ /dev/null
@@ -1,112 +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
-import QtQuick.Controls
-
-ApplicationWindow {
- width: 400
- height: 400
-
- header: ToolBar {
- ToolButton {
- objectName: "optionsToolButton"
- text: "Options"
- onClicked: optionsMenu.open()
-
- Menu {
- id: optionsMenu
- objectName: "optionsMenu"
- x: parent.width - width
- transformOrigin: Menu.TopRight
-
- MenuItem {
- objectName: "settingsMenuItem"
- text: "Settings"
- onTriggered: settingsDialog.open()
- }
- }
- }
- }
-
- Shortcut {
- sequence: "Esc"
- enabled: stackView.depth > 1
- onActivated: stackView.pop()
- }
-
- Component {
- id: itemComponent
-
- Item {}
- }
-
- StackView {
- id: stackView
- objectName: "stackView"
- anchors.fill: parent
- initialItem: Item {
- objectName: "initialStackViewItem"
- }
-
- Component.onCompleted: push(itemComponent)
- }
-
- Dialog {
- id: settingsDialog
- objectName: "settingsDialog"
- modal: true
-
- contentItem: ComboBox {
- objectName: "comboBox"
- model: 10
- }
- }
-}
diff --git a/tests/auto/quickcontrols2/qquickpopup/data/closeOnEscapeWithVisiblePopup.qml b/tests/auto/quickcontrols2/qquickpopup/data/closeOnEscapeWithVisiblePopup.qml
deleted file mode 100644
index b65e4ec0..00000000
--- a/tests/auto/quickcontrols2/qquickpopup/data/closeOnEscapeWithVisiblePopup.qml
+++ /dev/null
@@ -1,16 +0,0 @@
-import QtQuick
-import QtQuick.Window
-import QtQuick.Controls
-
-Window {
- width: 400
- height: 400
- Popup {
- objectName: "popup"
- visible: true
- width: 200
- height: 200
- anchors.centerIn: parent
- closePolicy: Popup.CloseOnEscape
- }
-}
diff --git a/tests/auto/quickcontrols2/qquickpopup/data/countChanged.qml b/tests/auto/quickcontrols2/qquickpopup/data/countChanged.qml
deleted file mode 100644
index fd594332..00000000
--- a/tests/auto/quickcontrols2/qquickpopup/data/countChanged.qml
+++ /dev/null
@@ -1,80 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2019 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
-import QtQuick.Window
-import QtQuick.Controls
-
-Window {
- width: 640
- height: 480
- property bool isModel1: true
- property alias comboBox: comboBox
- property int count: comboBox.count
- ListModel {
- id: model1
- ListElement {
- display: "one"
- }
- }
- ListModel {
- id: model2
- ListElement {
- display: "one"
- }
- ListElement {
- display: "two"
- }
- }
- ComboBox {
- id: comboBox
- model: isModel1 ? model1 : model2
- }
-}
diff --git a/tests/auto/quickcontrols2/qquickpopup/data/cursor.qml b/tests/auto/quickcontrols2/qquickpopup/data/cursor.qml
deleted file mode 100644
index e2a6e38e..00000000
--- a/tests/auto/quickcontrols2/qquickpopup/data/cursor.qml
+++ /dev/null
@@ -1,71 +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
-import QtQuick.Controls
-
-ApplicationWindow {
- width: 400
- height: 400
-
- property alias popup: popup
- property alias textField: textField
-
- TextField {
- id: textField
- }
- Popup {
- id: popup
- x: textField.x + textField.width / 2
- y: textField.y + textField.height / 2 - height / 2
- width: 100
- height: 100
- }
-}
diff --git a/tests/auto/quickcontrols2/qquickpopup/data/destroyDuringExitTransition.qml b/tests/auto/quickcontrols2/qquickpopup/data/destroyDuringExitTransition.qml
deleted file mode 100644
index 67fca2e7..00000000
--- a/tests/auto/quickcontrols2/qquickpopup/data/destroyDuringExitTransition.qml
+++ /dev/null
@@ -1,114 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 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
-import QtQuick.Controls
-
-ApplicationWindow {
- id: window
- width: 400
- height: 400
- title: "destroyDuringExitTransition"
-
- property Dialog dialog1
- property Dialog dialog2
-
- Component {
- id: dlg
-
- Dialog {
- dim: true
- modal: true
- closePolicy: Popup.CloseOnEscape
- visible: true
-
- property alias button: button
-
- Column {
- Text {
- text: "button is " + (button.down ? "down" : "up")
- }
-
- Button {
- id: button
- text: "Try to press this button"
- }
- }
- }
- }
-
- Component {
- id: brokenDlg
- Dialog {
- dim: true
- modal: true
- closePolicy: Popup.CloseOnEscape
- visible: true
-
- Text {
- text: "Press Esc key to reject this dialog"
- }
-
- exit: Transition {
- NumberAnimation { property: "opacity"; from: 1.0; to: 0.0; duration: 100 }
- }
- }
- }
-
-
- Component.onCompleted: {
- dialog1 = dlg.createObject(window)
- dialog2 = brokenDlg.createObject(window)
-
- dialog2.onRejected.connect(function(){
- dialog2.destroy()
- })
- }
-}
diff --git a/tests/auto/quickcontrols2/qquickpopup/data/dialog.qml b/tests/auto/quickcontrols2/qquickpopup/data/dialog.qml
deleted file mode 100644
index 75c0e1c6..00000000
--- a/tests/auto/quickcontrols2/qquickpopup/data/dialog.qml
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2019 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
-import QtQuick.Window
-import QtQuick.Controls
-
-Item {
- width: 400
- height: 400
- objectName: "Rectangle"
-
- property alias dialog: dialog
-
- Dialog {
- id: dialog
- objectName: "Dialog"
- width: 200
- height: 200
- anchors.centerIn: parent
- visible: true
-
- Component.onCompleted: {
- background.objectName = "DialogBackground"
- contentItem.objectName = "DialogContentItem"
- }
- }
-}
diff --git a/tests/auto/quickcontrols2/qquickpopup/data/disabledPalette.qml b/tests/auto/quickcontrols2/qquickpopup/data/disabledPalette.qml
deleted file mode 100644
index f1608aae..00000000
--- a/tests/auto/quickcontrols2/qquickpopup/data/disabledPalette.qml
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2019 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
-import QtQuick.Controls
-
-ApplicationWindow {
- width: 400
- height: 400
-
- property alias popup: popup
-
- function disableOverlay() {
- popup.Overlay.overlay.enabled = false
- }
-
- Popup {
- id: popup
- width: 200
- height: 200
- background: Rectangle {
- color: popup.palette.base
- }
- }
-}
diff --git a/tests/auto/quickcontrols2/qquickpopup/data/grabber.qml b/tests/auto/quickcontrols2/qquickpopup/data/grabber.qml
deleted file mode 100644
index 507cc3b5..00000000
--- a/tests/auto/quickcontrols2/qquickpopup/data/grabber.qml
+++ /dev/null
@@ -1,80 +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
-import QtQuick.Controls
-
-ApplicationWindow {
- width: 400
- height: 400
-
- property alias menu: menu
- property alias popup: popup
- property alias combo: combo.popup
-
- Menu {
- id: menu
- MenuItem {
- onTriggered: popup.open()
- }
- }
-
- Popup {
- id: popup
- modal: true
- width: 200
- height: 200
-
- ComboBox {
- id: combo
- model: 3
- }
- }
-}
diff --git a/tests/auto/quickcontrols2/qquickpopup/data/invisibleToolTipOpen.qml b/tests/auto/quickcontrols2/qquickpopup/data/invisibleToolTipOpen.qml
deleted file mode 100644
index 6607dc6f..00000000
--- a/tests/auto/quickcontrols2/qquickpopup/data/invisibleToolTipOpen.qml
+++ /dev/null
@@ -1,26 +0,0 @@
-import QtQuick
-import QtQuick.Window
-import QtQuick.Controls
-
-Window {
- width: 400
- height: 400
- property alias mouseArea: mouseArea
- property alias loader: loader
- MouseArea {
- id: mouseArea
- width: 200
- height: 200
- hoverEnabled: true
- ToolTip.text: "static tooltip"
- ToolTip.visible: containsMouse
- }
- Loader {
- id: loader
- active: false
- sourceComponent: Rectangle {
- ToolTip.text: "dynamic tooltip"
- ToolTip.visible: false
- }
- }
-}
diff --git a/tests/auto/quickcontrols2/qquickpopup/data/nested.qml b/tests/auto/quickcontrols2/qquickpopup/data/nested.qml
deleted file mode 100644
index 03269cd1..00000000
--- a/tests/auto/quickcontrols2/qquickpopup/data/nested.qml
+++ /dev/null
@@ -1,74 +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
-import QtQuick.Controls
-
-ApplicationWindow {
- width: 400
- height: 400
-
- property alias modalPopup: modalPopup
- property alias modelessPopup: modelessPopup
-
- Popup {
- id: modalPopup
- modal: true
- width: 200
- height: 200
- }
-
- Popup {
- id: modelessPopup
- modal: false
- width: 100
- height: 100
- }
-}
diff --git a/tests/auto/quickcontrols2/qquickpopup/data/orientation.qml b/tests/auto/quickcontrols2/qquickpopup/data/orientation.qml
deleted file mode 100644
index 9730a9e1..00000000
--- a/tests/auto/quickcontrols2/qquickpopup/data/orientation.qml
+++ /dev/null
@@ -1,76 +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
-import QtQuick.Window
-import QtQuick.Controls
-
-Window {
- width: 600
- height: 300
-
- property alias popup: popup
-
- Rectangle {
- width: 60
- height: 30
- anchors.centerIn: parent
- border.width: 1
-
- Popup {
- id: popup
- x: parent.width
- y: parent.height
- width: 30
- height: 60
- visible: true
- }
- }
-}
diff --git a/tests/auto/quickcontrols2/qquickpopup/data/tabFence.qml b/tests/auto/quickcontrols2/qquickpopup/data/tabFence.qml
deleted file mode 100644
index ce5b5417..00000000
--- a/tests/auto/quickcontrols2/qquickpopup/data/tabFence.qml
+++ /dev/null
@@ -1,97 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2019 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
-import QtQuick.Layouts
-import QtQuick.Window
-import QtQuick.Controls
-
-ApplicationWindow {
- width: 400
- height: 400
- objectName: "Rectangle"
-
- property alias dialog: dialog
- property alias outsideButton1: outsideButton1
- property alias outsideButton2: outsideButton2
- property alias dialogButton1: dialogButton1
- property alias dialogButton2: dialogButton2
-
- ColumnLayout {
- Button {
- id: outsideButton1
- text: "Button1"
- }
- Button {
- id: outsideButton2
- text: "Button2"
- }
- }
-
- Dialog {
- id: dialog
- objectName: "Dialog"
- width: 200
- height: 200
- anchors.centerIn: parent
- visible: true
-
- ColumnLayout {
- Button {
- id: dialogButton1
- text: "Button3"
- }
- Button {
- id: dialogButton2
- text: "Button4"
- }
- }
- }
-}
diff --git a/tests/auto/quickcontrols2/qquickpopup/data/toolTipCrashOnClose.qml b/tests/auto/quickcontrols2/qquickpopup/data/toolTipCrashOnClose.qml
deleted file mode 100644
index 33452182..00000000
--- a/tests/auto/quickcontrols2/qquickpopup/data/toolTipCrashOnClose.qml
+++ /dev/null
@@ -1,94 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2019 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
-import QtQuick.Window
-import QtQuick.Controls
-import QtGraphicalEffects
-
-Window {
- width: 640
- height: 480
-
- readonly property bool toolTipOpened: mouseArea.ToolTip.toolTip.opened
-
- Component.onCompleted: contentItem.objectName = "windowContentItem"
-
- // For the setOverlayParentToNull test.
- function nullifyOverlayParent() {
- Overlay.overlay.parent = null
- }
-
- Item {
- objectName: "outerItem"
- anchors.fill: parent
-
- Item {
- objectName: "innerItem"
- anchors.fill: parent
-
- ColorOverlay {
- objectName: "colorOverlay"
- source: parent
- anchors.fill: parent
- }
-
- MouseArea {
- id: mouseArea
- objectName: "mouseArea"
- anchors.fill: parent
- hoverEnabled: true
-
- ToolTip.visible: containsMouse
- ToolTip.text: "ToolTip text"
- }
- }
- }
-}
diff --git a/tests/auto/quickcontrols2/qquickpopup/data/window-hover.qml b/tests/auto/quickcontrols2/qquickpopup/data/window-hover.qml
deleted file mode 100644
index e0eef302..00000000
--- a/tests/auto/quickcontrols2/qquickpopup/data/window-hover.qml
+++ /dev/null
@@ -1,80 +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
-import QtQuick.Window
-import QtQuick.Controls
-
-Window {
- width: 400
- height: 400
-
- property alias popup: popup
- property alias parentButton: parentButton
- property alias childButton: childButton
-
- Button {
- id: parentButton
- text: "Parent"
- anchors.fill: parent
-
- Popup {
- id: popup
- x: 1
- y: 1
- padding: 1
-
- Button {
- id: childButton
- text: "Child"
- }
- }
- }
-}
diff --git a/tests/auto/quickcontrols2/qquickpopup/data/window-wheel.qml b/tests/auto/quickcontrols2/qquickpopup/data/window-wheel.qml
deleted file mode 100644
index e476a1eb..00000000
--- a/tests/auto/quickcontrols2/qquickpopup/data/window-wheel.qml
+++ /dev/null
@@ -1,81 +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
-import QtQuick.Window
-import QtQuick.Controls
-
-Window {
- id: window
- width: 400
- height: 400
-
- property alias popup: popup
- property alias popupSlider: popupSlider
- property alias contentSlider: contentSlider
-
- Slider {
- id: contentSlider
- anchors.fill: parent
- wheelEnabled: true
- }
-
- Popup {
- id: popup
- x: 50; y: 50
- implicitWidth: parent.width - 100
- implicitHeight: parent.height - 100
- clip: true
- contentItem: Slider {
- id: popupSlider
- wheelEnabled: true
- }
- }
-}
diff --git a/tests/auto/quickcontrols2/qquickpopup/data/window.qml b/tests/auto/quickcontrols2/qquickpopup/data/window.qml
deleted file mode 100644
index f6b76b7e..00000000
--- a/tests/auto/quickcontrols2/qquickpopup/data/window.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
-import QtQuick.Window
-import QtQuick.Controls
-
-Window {
- width: 400
- height: 400
-
- property alias popup: popup
- property alias popup2: popup2
- property alias button: button
-
- Button {
- id: button
- text: "Open"
- anchors.centerIn: parent
- anchors.verticalCenterOffset: -height
-
- Popup {
- id: popup
- y: parent.height
-
- Text {
- color: "white"
- text: "Hello, world!"
-
- MouseArea {
- anchors.fill: parent
- onClicked: popup.close()
- }
- }
- }
- }
-
- Popup {
- id: popup2
- y: popup.y
- z: 1
- contentItem: Text {
- text: "Popup2"
- font.pixelSize: 36
- }
- }
-}
diff --git a/tests/auto/quickcontrols2/qquickpopup/tst_qquickpopup.cpp b/tests/auto/quickcontrols2/qquickpopup/tst_qquickpopup.cpp
deleted file mode 100644
index c709c17d..00000000
--- a/tests/auto/quickcontrols2/qquickpopup/tst_qquickpopup.cpp
+++ /dev/null
@@ -1,1477 +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 <QtTest/qtest.h>
-#include <QtTest/qsignalspy.h>
-#include "../shared/util.h"
-#include "../shared/visualtestutil.h"
-#include "../shared/qtest_quickcontrols.h"
-
-#include <QtCore/qoperatingsystemversion.h>
-#include <QtGui/qpa/qwindowsysteminterface.h>
-#include <QtQuick/qquickview.h>
-#include <QtQuick/private/qquickpalette_p.h>
-#include <QtQuickTemplates2/private/qquickapplicationwindow_p.h>
-#include <QtQuickTemplates2/private/qquickcombobox_p.h>
-#include <QtQuickTemplates2/private/qquickdialog_p.h>
-#include <QtQuickTemplates2/private/qquickoverlay_p.h>
-#include <QtQuickTemplates2/private/qquickpopup_p.h>
-#include <QtQuickTemplates2/private/qquickpopupitem_p_p.h>
-#include <QtQuickTemplates2/private/qquickbutton_p.h>
-#include <QtQuickTemplates2/private/qquickslider_p.h>
-#include <QtQuickTemplates2/private/qquickstackview_p.h>
-#include <QtQuickTemplates2/private/qquickpopup_p_p.h>
-#include <QtQuickTemplates2/private/qquicktooltip_p.h>
-
-using namespace QQuickVisualTestUtil;
-
-class tst_QQuickPopup : public QQmlDataTest
-{
- Q_OBJECT
-
-private slots:
- void initTestCase() override;
- void visible_data();
- void visible();
- void state();
- void overlay_data();
- void overlay();
- void zOrder_data();
- void zOrder();
- void windowChange();
- void closePolicy_data();
- void closePolicy();
- void activeFocusOnClose1();
- void activeFocusOnClose2();
- void activeFocusOnClose3();
- void activeFocusOnClosingSeveralPopups();
- void hover_data();
- void hover();
- void wheel_data();
- void wheel();
- void parentDestroyed();
- void nested();
- void grabber();
- void cursorShape();
- void componentComplete();
- void closeOnEscapeWithNestedPopups();
- void closeOnEscapeWithVisiblePopup();
- void enabled();
- void orientation_data();
- void orientation();
- void qquickview();
- void disabledPalette();
- void disabledParentPalette();
- void countChanged();
- void toolTipCrashOnClose();
- void setOverlayParentToNull();
- void tabFence();
- void invisibleToolTipOpen();
- void centerInOverlayWithinStackViewItem();
- void destroyDuringExitTransition();
-};
-
-void tst_QQuickPopup::initTestCase()
-{
- QQmlDataTest::initTestCase();
- qputenv("QML_NO_TOUCH_COMPRESSION", "1");
-}
-
-void tst_QQuickPopup::visible_data()
-{
- QTest::addColumn<QString>("source");
- QTest::newRow("Window") << "window.qml";
- QTest::newRow("ApplicationWindow") << "applicationwindow.qml";
-}
-
-void tst_QQuickPopup::visible()
-{
- QFETCH(QString, source);
- QQuickApplicationHelper helper(this, source);
- QVERIFY2(helper.ready, helper.failureMessage());
-
- QQuickWindow *window = helper.window;
- window->show();
- window->requestActivate();
- QVERIFY(QTest::qWaitForWindowActive(window));
-
- QQuickPopup *popup = window->property("popup").value<QQuickPopup*>();
- QVERIFY(popup);
- QQuickItem *popupItem = popup->popupItem();
-
- popup->open();
- QTRY_VERIFY(popup->isOpened());
-
- QQuickOverlay *overlay = QQuickOverlay::overlay(window);
- QVERIFY(overlay);
- QVERIFY(overlay->childItems().contains(popupItem));
-
- popup->close();
- QTRY_VERIFY(!popup->isVisible());
- QVERIFY(!overlay->childItems().contains(popupItem));
-
- popup->setVisible(true);
- QTRY_VERIFY(popup->isOpened());
- QVERIFY(overlay->childItems().contains(popupItem));
-
- popup->setVisible(false);
- QTRY_VERIFY(!popup->isVisible());
- QVERIFY(!overlay->childItems().contains(popupItem));
-}
-
-void tst_QQuickPopup::state()
-{
- QQuickApplicationHelper helper(this, "applicationwindow.qml");
- QVERIFY2(helper.ready, helper.failureMessage());
-
- QQuickWindow *window = helper.window;
- window->show();
- QVERIFY(QTest::qWaitForWindowExposed(window));
-
- QQuickPopup *popup = window->property("popup").value<QQuickPopup*>();
- QVERIFY(popup);
-
- QCOMPARE(popup->isVisible(), false);
-
- QSignalSpy visibleChangedSpy(popup, SIGNAL(visibleChanged()));
- QSignalSpy aboutToShowSpy(popup, SIGNAL(aboutToShow()));
- QSignalSpy aboutToHideSpy(popup, SIGNAL(aboutToHide()));
- QSignalSpy openedSpy(popup, SIGNAL(opened()));
- QSignalSpy closedSpy(popup, SIGNAL(closed()));
-
- QVERIFY(visibleChangedSpy.isValid());
- QVERIFY(aboutToShowSpy.isValid());
- QVERIFY(aboutToHideSpy.isValid());
- QVERIFY(openedSpy.isValid());
- QVERIFY(closedSpy.isValid());
-
- popup->open();
- QCOMPARE(visibleChangedSpy.count(), 1);
- QCOMPARE(aboutToShowSpy.count(), 1);
- QCOMPARE(aboutToHideSpy.count(), 0);
- QTRY_COMPARE(openedSpy.count(), 1);
- QCOMPARE(closedSpy.count(), 0);
-
- popup->close();
- QTRY_COMPARE(visibleChangedSpy.count(), 2);
- QCOMPARE(aboutToShowSpy.count(), 1);
- QCOMPARE(aboutToHideSpy.count(), 1);
- QCOMPARE(openedSpy.count(), 1);
- QTRY_COMPARE(closedSpy.count(), 1);
-}
-
-void tst_QQuickPopup::overlay_data()
-{
- QTest::addColumn<QString>("source");
- QTest::addColumn<bool>("modal");
- QTest::addColumn<bool>("dim");
-
- QTest::newRow("Window") << "window.qml" << false << false;
- QTest::newRow("Window,dim") << "window.qml" << false << true;
- QTest::newRow("Window,modal") << "window.qml" << true << false;
- QTest::newRow("Window,modal,dim") << "window.qml" << true << true;
-
- QTest::newRow("ApplicationWindow") << "applicationwindow.qml" << false << false;
- QTest::newRow("ApplicationWindow,dim") << "applicationwindow.qml" << false << true;
- QTest::newRow("ApplicationWindow,modal") << "applicationwindow.qml" << true << false;
- QTest::newRow("ApplicationWindow,modal,dim") << "applicationwindow.qml" << true << true;
-}
-
-void tst_QQuickPopup::overlay()
-{
- QFETCH(QString, source);
- QFETCH(bool, modal);
- QFETCH(bool, dim);
-
- QScopedPointer<QPointingDevice> device(QTest::createTouchDevice());
- QQuickApplicationHelper helper(this, source);
- QVERIFY2(helper.ready, helper.failureMessage());
-
- QQuickWindow *window = helper.window;
- window->show();
- window->requestActivate();
- QVERIFY(QTest::qWaitForWindowActive(window));
-
- QQuickOverlay *overlay = QQuickOverlay::overlay(window);
- QVERIFY(overlay);
-
- QSignalSpy overlayPressedSignal(overlay, SIGNAL(pressed()));
- QSignalSpy overlayReleasedSignal(overlay, SIGNAL(released()));
- QVERIFY(overlayPressedSignal.isValid());
- QVERIFY(overlayReleasedSignal.isValid());
-
- QVERIFY(!overlay->isVisible()); // no popups open
-
- QTest::mouseClick(window, Qt::LeftButton);
- QCOMPARE(overlayPressedSignal.count(), 0);
- QCOMPARE(overlayReleasedSignal.count(), 0);
-
- QQuickPopup *popup = window->property("popup").value<QQuickPopup*>();
- QVERIFY(popup);
-
- QQuickOverlayAttached *overlayAttached = qobject_cast<QQuickOverlayAttached *>(qmlAttachedPropertiesObject<QQuickOverlay>(popup));
- QVERIFY(overlayAttached);
- QCOMPARE(overlayAttached->overlay(), overlay);
-
- QSignalSpy overlayAttachedPressedSignal(overlayAttached, SIGNAL(pressed()));
- QSignalSpy overlayAttachedReleasedSignal(overlayAttached, SIGNAL(released()));
- QVERIFY(overlayAttachedPressedSignal.isValid());
- QVERIFY(overlayAttachedReleasedSignal.isValid());
-
- QQuickButton *button = window->property("button").value<QQuickButton*>();
- QVERIFY(button);
-
- int overlayPressCount = 0;
- int overlayReleaseCount = 0;
-
- popup->open();
- QVERIFY(popup->isVisible());
- QVERIFY(overlay->isVisible());
- QTRY_VERIFY(popup->isOpened());
-
- QTest::mousePress(window, Qt::LeftButton, Qt::NoModifier, QPoint(1, 1));
- QCOMPARE(overlayPressedSignal.count(), ++overlayPressCount);
- QCOMPARE(overlayReleasedSignal.count(), overlayReleaseCount);
- QCOMPARE(overlayAttachedPressedSignal.count(), overlayPressCount);
- QCOMPARE(overlayAttachedReleasedSignal.count(), overlayReleaseCount);
-
- QTRY_VERIFY(!popup->isVisible());
- QVERIFY(!overlay->isVisible());
-
- QTest::mouseRelease(window, Qt::LeftButton, Qt::NoModifier, QPoint(1, 1));
- QCOMPARE(overlayPressedSignal.count(), overlayPressCount);
- QCOMPARE(overlayReleasedSignal.count(), overlayReleaseCount); // no modal-popups open
- QCOMPARE(overlayAttachedPressedSignal.count(), overlayPressCount);
- QCOMPARE(overlayAttachedReleasedSignal.count(), overlayReleaseCount);
-
- popup->setDim(dim);
- popup->setModal(modal);
- popup->setClosePolicy(QQuickPopup::CloseOnReleaseOutside);
-
- // mouse
- popup->open();
- QVERIFY(popup->isVisible());
- QVERIFY(overlay->isVisible());
- QTRY_VERIFY(popup->isOpened());
-
- QTest::mousePress(window, Qt::LeftButton, Qt::NoModifier, QPoint(1, 1));
- QCOMPARE(overlayPressedSignal.count(), ++overlayPressCount);
- QCOMPARE(overlayReleasedSignal.count(), overlayReleaseCount);
- QCOMPARE(overlayAttachedPressedSignal.count(), overlayPressCount);
- QCOMPARE(overlayAttachedReleasedSignal.count(), overlayReleaseCount);
-
- QTest::mouseRelease(window, Qt::LeftButton, Qt::NoModifier, QPoint(1, 1));
- QCOMPARE(overlayPressedSignal.count(), overlayPressCount);
- QCOMPARE(overlayReleasedSignal.count(), ++overlayReleaseCount);
- QCOMPARE(overlayAttachedPressedSignal.count(), overlayPressCount);
- QCOMPARE(overlayAttachedReleasedSignal.count(), overlayReleaseCount);
-
- QTRY_VERIFY(!popup->isVisible());
- QVERIFY(!overlay->isVisible());
-
- // touch
- popup->open();
- QVERIFY(popup->isVisible());
- QVERIFY(overlay->isVisible());
- QTRY_VERIFY(popup->isOpened());
-
- QTest::touchEvent(window, device.data()).press(0, QPoint(1, 1));
- QCOMPARE(overlayPressedSignal.count(), ++overlayPressCount);
- QCOMPARE(overlayReleasedSignal.count(), overlayReleaseCount);
- QCOMPARE(overlayAttachedPressedSignal.count(), overlayPressCount);
- QCOMPARE(overlayAttachedReleasedSignal.count(), overlayReleaseCount);
-
- QTest::touchEvent(window, device.data()).release(0, QPoint(1, 1));
- QCOMPARE(overlayPressedSignal.count(), overlayPressCount);
- QCOMPARE(overlayReleasedSignal.count(), ++overlayReleaseCount);
- QCOMPARE(overlayAttachedPressedSignal.count(), overlayPressCount);
- QCOMPARE(overlayAttachedReleasedSignal.count(), overlayReleaseCount);
-
- QTRY_VERIFY(!popup->isVisible());
- QVERIFY(!overlay->isVisible());
-
- // multi-touch
- popup->open();
- QVERIFY(popup->isVisible());
- QVERIFY(overlay->isVisible());
- QVERIFY(!button->isPressed());
- QTRY_VERIFY(popup->isOpened());
-
- QTest::touchEvent(window, device.data()).press(0, button->mapToScene(QPointF(1, 1)).toPoint());
- QVERIFY(popup->isVisible());
- QVERIFY(overlay->isVisible());
- QCOMPARE(button->isPressed(), !modal);
- QCOMPARE(overlayPressedSignal.count(), ++overlayPressCount);
- QCOMPARE(overlayReleasedSignal.count(), overlayReleaseCount);
-
- QTest::touchEvent(window, device.data()).stationary(0).press(1, button->mapToScene(QPointF(button->width() / 2, button->height() / 2)).toPoint());
- QVERIFY(popup->isVisible());
- QVERIFY(overlay->isVisible());
- QCOMPARE(button->isPressed(), !modal);
- QCOMPARE(overlayPressedSignal.count(), ++overlayPressCount);
- QCOMPARE(overlayReleasedSignal.count(), overlayReleaseCount);
-
- QTest::touchEvent(window, device.data()).release(0, button->mapToScene(QPointF(1, 1)).toPoint()).stationary(1);
- QTRY_VERIFY(!popup->isVisible());
- QVERIFY(!overlay->isVisible());
- QVERIFY(!button->isPressed());
- QCOMPARE(overlayPressedSignal.count(), overlayPressCount);
- QCOMPARE(overlayReleasedSignal.count(), ++overlayReleaseCount);
-
- QTest::touchEvent(window, device.data()).release(1, button->mapToScene(QPointF(button->width() / 2, button->height() / 2)).toPoint());
- QVERIFY(!popup->isVisible());
- QVERIFY(!overlay->isVisible());
- QVERIFY(!button->isPressed());
- QCOMPARE(overlayPressedSignal.count(), overlayPressCount);
- QCOMPARE(overlayReleasedSignal.count(), overlayReleaseCount);
-}
-
-void tst_QQuickPopup::zOrder_data()
-{
- QTest::addColumn<QString>("source");
- QTest::newRow("Window") << "window.qml";
- QTest::newRow("ApplicationWindow") << "applicationwindow.qml";
-}
-
-void tst_QQuickPopup::zOrder()
-{
- QFETCH(QString, source);
- QQuickApplicationHelper helper(this, source);
- QVERIFY2(helper.ready, helper.failureMessage());
-
- QQuickWindow *window = helper.window;
- window->show();
- window->requestActivate();
- QVERIFY(QTest::qWaitForWindowActive(window));
-
- QQuickPopup *popup = window->property("popup").value<QQuickPopup*>();
- QVERIFY(popup);
- popup->setModal(true);
-
- QQuickPopup *popup2 = window->property("popup2").value<QQuickPopup*>();
- QVERIFY(popup2);
- popup2->setModal(true);
-
- // show popups in reverse order. popup2 has higher z-order so it appears
- // on top and must be closed first, even if the other popup was opened last
- popup2->open();
- popup->open();
- QTRY_VERIFY(popup2->isOpened());
- QTRY_VERIFY(popup->isOpened());
-
- QTest::mouseClick(window, Qt::LeftButton, Qt::NoModifier, QPoint(1, 1));
- QTRY_VERIFY(!popup2->isVisible());
- QVERIFY(popup->isVisible());
-
- QTest::mouseClick(window, Qt::LeftButton, Qt::NoModifier, QPoint(1, 1));
- QVERIFY(!popup2->isVisible());
- QTRY_VERIFY(!popup->isVisible());
-}
-
-void tst_QQuickPopup::windowChange()
-{
- QQuickPopup popup;
- QSignalSpy spy(&popup, SIGNAL(windowChanged(QQuickWindow*)));
- QVERIFY(spy.isValid());
-
- QQuickItem item;
- popup.setParentItem(&item);
- QVERIFY(!popup.window());
- QCOMPARE(spy.count(), 0);
-
- QQuickWindow window;
- item.setParentItem(window.contentItem());
- QCOMPARE(popup.window(), &window);
- QCOMPARE(spy.count(), 1);
-
- item.setParentItem(nullptr);
- QVERIFY(!popup.window());
- QCOMPARE(spy.count(), 2);
-
- popup.setParentItem(window.contentItem());
- QCOMPARE(popup.window(), &window);
- QCOMPARE(spy.count(), 3);
-
- popup.resetParentItem();
- QVERIFY(!popup.window());
- QCOMPARE(spy.count(), 4);
-
- popup.setParent(&window);
- popup.resetParentItem();
- QCOMPARE(popup.window(), &window);
- QCOMPARE(spy.count(), 5);
-
- popup.setParent(this);
- popup.resetParentItem();
- QVERIFY(!popup.window());
- QCOMPARE(spy.count(), 6);
-
- item.setParentItem(window.contentItem());
- popup.setParent(&item);
- popup.resetParentItem();
- QCOMPARE(popup.window(), &window);
- QCOMPARE(spy.count(), 7);
-
- popup.setParent(nullptr);
-}
-
-Q_DECLARE_METATYPE(QQuickPopup::ClosePolicy)
-
-void tst_QQuickPopup::closePolicy_data()
-{
- qRegisterMetaType<QQuickPopup::ClosePolicy>();
-
- QTest::addColumn<QString>("source");
- QTest::addColumn<QQuickPopup::ClosePolicy>("closePolicy");
-
- QTest::newRow("Window:NoAutoClose") << "window.qml"<< static_cast<QQuickPopup::ClosePolicy>(QQuickPopup::NoAutoClose);
- QTest::newRow("Window:CloseOnPressOutside") << "window.qml"<< static_cast<QQuickPopup::ClosePolicy>(QQuickPopup::CloseOnPressOutside);
- QTest::newRow("Window:CloseOnPressOutsideParent") << "window.qml"<< static_cast<QQuickPopup::ClosePolicy>(QQuickPopup::CloseOnPressOutsideParent);
- QTest::newRow("Window:CloseOnPressOutside|Parent") << "window.qml"<< static_cast<QQuickPopup::ClosePolicy>(QQuickPopup::CloseOnPressOutside | QQuickPopup::CloseOnPressOutsideParent);
- QTest::newRow("Window:CloseOnReleaseOutside") << "window.qml"<< static_cast<QQuickPopup::ClosePolicy>(QQuickPopup::CloseOnReleaseOutside);
- QTest::newRow("Window:CloseOnReleaseOutside|Parent") << "window.qml"<< static_cast<QQuickPopup::ClosePolicy>(QQuickPopup::CloseOnReleaseOutside | QQuickPopup::CloseOnReleaseOutsideParent);
- QTest::newRow("Window:CloseOnEscape") << "window.qml"<< static_cast<QQuickPopup::ClosePolicy>(QQuickPopup::CloseOnEscape);
-
- QTest::newRow("ApplicationWindow:NoAutoClose") << "applicationwindow.qml"<< static_cast<QQuickPopup::ClosePolicy>(QQuickPopup::NoAutoClose);
- QTest::newRow("ApplicationWindow:CloseOnPressOutside") << "applicationwindow.qml"<< static_cast<QQuickPopup::ClosePolicy>(QQuickPopup::CloseOnPressOutside);
- QTest::newRow("ApplicationWindow:CloseOnPressOutsideParent") << "applicationwindow.qml"<< static_cast<QQuickPopup::ClosePolicy>(QQuickPopup::CloseOnPressOutsideParent);
- QTest::newRow("ApplicationWindow:CloseOnPressOutside|Parent") << "applicationwindow.qml"<< static_cast<QQuickPopup::ClosePolicy>(QQuickPopup::CloseOnPressOutside | QQuickPopup::CloseOnPressOutsideParent);
- QTest::newRow("ApplicationWindow:CloseOnReleaseOutside") << "applicationwindow.qml"<< static_cast<QQuickPopup::ClosePolicy>(QQuickPopup::CloseOnReleaseOutside);
- QTest::newRow("ApplicationWindow:CloseOnReleaseOutside|Parent") << "applicationwindow.qml"<< static_cast<QQuickPopup::ClosePolicy>(QQuickPopup::CloseOnReleaseOutside | QQuickPopup::CloseOnReleaseOutsideParent);
- QTest::newRow("ApplicationWindow:CloseOnEscape") << "applicationwindow.qml"<< static_cast<QQuickPopup::ClosePolicy>(QQuickPopup::CloseOnEscape);
-}
-
-void tst_QQuickPopup::closePolicy()
-{
- QFETCH(QString, source);
- QFETCH(QQuickPopup::ClosePolicy, closePolicy);
-
- QQuickApplicationHelper helper(this, source);
- QVERIFY2(helper.ready, helper.failureMessage());
-
- QQuickWindow *window = helper.window;
- window->show();
- window->requestActivate();
- QVERIFY(QTest::qWaitForWindowActive(window));
-
- QQuickPopup *popup = window->property("popup").value<QQuickPopup*>();
- QVERIFY(popup);
-
- QQuickButton *button = window->property("button").value<QQuickButton*>();
- QVERIFY(button);
-
- popup->setModal(true);
- popup->setFocus(true);
- popup->setClosePolicy(closePolicy);
-
- popup->open();
- QVERIFY(popup->isVisible());
- QTRY_VERIFY(popup->isOpened());
-
- // press outside popup and its parent
- QTest::mousePress(window, Qt::LeftButton, Qt::NoModifier, QPoint(1, 1), 50);
- if (closePolicy.testFlag(QQuickPopup::CloseOnPressOutside) || closePolicy.testFlag(QQuickPopup::CloseOnPressOutsideParent))
- QTRY_VERIFY(!popup->isVisible());
- else
- QVERIFY(popup->isVisible());
-
- popup->open();
- QVERIFY(popup->isVisible());
- QTRY_VERIFY(popup->isOpened());
-
- // release outside popup and its parent
- QTest::mouseRelease(window, Qt::LeftButton, Qt::NoModifier, QPoint(1, 1));
- if (closePolicy.testFlag(QQuickPopup::CloseOnReleaseOutside))
- QTRY_VERIFY(!popup->isVisible());
- else
- QVERIFY(popup->isVisible());
-
- popup->open();
- QVERIFY(popup->isVisible());
- QTRY_VERIFY(popup->isOpened());
-
- // press outside popup but inside its parent
- QTest::mousePress(window, Qt::LeftButton, Qt::NoModifier, QPoint(button->x() + 1, button->y() + 1));
- if (closePolicy.testFlag(QQuickPopup::CloseOnPressOutside) && !closePolicy.testFlag(QQuickPopup::CloseOnPressOutsideParent))
- QTRY_VERIFY(!popup->isVisible());
- else
- QVERIFY(popup->isVisible());
-
- popup->open();
- QVERIFY(popup->isVisible());
- QTRY_VERIFY(popup->isOpened());
-
- // release outside popup but inside its parent
- QTest::mouseRelease(window, Qt::LeftButton, Qt::NoModifier, QPoint(button->x() + 1, button->y() + 1));
- if (closePolicy.testFlag(QQuickPopup::CloseOnReleaseOutside) && !closePolicy.testFlag(QQuickPopup::CloseOnReleaseOutsideParent))
- QTRY_VERIFY(!popup->isVisible());
- else
- QVERIFY(popup->isVisible());
-
- popup->open();
- QVERIFY(popup->isVisible());
- QTRY_VERIFY(popup->isOpened());
-
- // press inside and release outside
- QTest::mousePress(window, Qt::LeftButton, Qt::NoModifier, QPoint(button->x() + popup->x() + 1,
- button->y() + popup->y() + 1));
- QVERIFY(popup->isVisible());
- QTest::mouseRelease(window, Qt::LeftButton, Qt::NoModifier, QPoint(1, 1));
- QVERIFY(popup->isVisible());
-
- // escape
- QTest::keyClick(window, Qt::Key_Escape);
- if (closePolicy.testFlag(QQuickPopup::CloseOnEscape))
- QTRY_VERIFY(!popup->isVisible());
- else
- QVERIFY(popup->isVisible());
-}
-
-void tst_QQuickPopup::activeFocusOnClose1()
-{
- // Test that a popup that never sets focus: true (e.g. ToolTip) doesn't affect
- // the active focus item when it closes.
- QQuickApplicationHelper helper(this, QStringLiteral("activeFocusOnClose1.qml"));
- QVERIFY2(helper.ready, helper.failureMessage());
- QQuickApplicationWindow *window = helper.appWindow;
- window->show();
- window->requestActivate();
- QVERIFY(QTest::qWaitForWindowActive(window));
-
- QQuickPopup *focusedPopup = helper.appWindow->property("focusedPopup").value<QQuickPopup*>();
- QVERIFY(focusedPopup);
-
- QQuickPopup *nonFocusedPopup = helper.appWindow->property("nonFocusedPopup").value<QQuickPopup*>();
- QVERIFY(nonFocusedPopup);
-
- focusedPopup->open();
- QVERIFY(focusedPopup->isVisible());
- QTRY_VERIFY(focusedPopup->isOpened());
- QVERIFY(focusedPopup->hasActiveFocus());
-
- nonFocusedPopup->open();
- QVERIFY(nonFocusedPopup->isVisible());
- QTRY_VERIFY(nonFocusedPopup->isOpened());
- QVERIFY(focusedPopup->hasActiveFocus());
-
- nonFocusedPopup->close();
- QTRY_VERIFY(!nonFocusedPopup->isVisible());
- QVERIFY(focusedPopup->hasActiveFocus());
-
- // QTBUG-66113: force active focus on a popup that did not request focus
- nonFocusedPopup->open();
- nonFocusedPopup->forceActiveFocus();
- QVERIFY(nonFocusedPopup->isVisible());
- QTRY_VERIFY(nonFocusedPopup->isOpened());
- QVERIFY(nonFocusedPopup->hasActiveFocus());
-
- nonFocusedPopup->close();
- QTRY_VERIFY(!nonFocusedPopup->isVisible());
- QVERIFY(focusedPopup->hasActiveFocus());
-}
-
-void tst_QQuickPopup::activeFocusOnClose2()
-{
- // Test that a popup that sets focus: true but relinquishes focus (e.g. by
- // calling forceActiveFocus() on another item) before it closes doesn't
- // affect the active focus item when it closes.
- QQuickApplicationHelper helper(this, QStringLiteral("activeFocusOnClose2.qml"));
- QVERIFY2(helper.ready, helper.failureMessage());
- QQuickApplicationWindow *window = helper.appWindow;
- window->show();
- window->requestActivate();
- QVERIFY(QTest::qWaitForWindowActive(window));
-
- QQuickPopup *popup1 = helper.appWindow->property("popup1").value<QQuickPopup*>();
- QVERIFY(popup1);
-
- QQuickPopup *popup2 = helper.appWindow->property("popup2").value<QQuickPopup*>();
- QVERIFY(popup2);
-
- QQuickButton *closePopup2Button = helper.appWindow->property("closePopup2Button").value<QQuickButton*>();
- QVERIFY(closePopup2Button);
-
- popup1->open();
- QVERIFY(popup1->isVisible());
- QTRY_VERIFY(popup1->isOpened());
- QVERIFY(popup1->hasActiveFocus());
-
- popup2->open();
- QVERIFY(popup2->isVisible());
- QTRY_VERIFY(popup2->isOpened());
- QVERIFY(popup2->hasActiveFocus());
-
- // Causes popup1.contentItem.forceActiveFocus() to be called, then closes popup2.
- QTRY_VERIFY(closePopup2Button->width() > 0);
- QTest::mouseClick(window, Qt::LeftButton, Qt::NoModifier,
- closePopup2Button->mapToScene(QPointF(closePopup2Button->width() / 2, closePopup2Button->height() / 2)).toPoint());
- QTRY_VERIFY(!popup2->isVisible());
- QVERIFY(popup1->hasActiveFocus());
-}
-
-void tst_QQuickPopup::activeFocusOnClose3()
-{
- // Test that a closing popup that had focus doesn't steal focus from
- // another popup that the focus was transferred to.
- QQuickApplicationHelper helper(this, QStringLiteral("activeFocusOnClose3.qml"));
- QVERIFY2(helper.ready, helper.failureMessage());
- QQuickApplicationWindow *window = helper.appWindow;
- window->show();
- window->requestActivate();
- QVERIFY(QTest::qWaitForWindowActive(window));
-
- QQuickPopup *popup1 = helper.appWindow->property("popup1").value<QQuickPopup*>();
- QVERIFY(popup1);
-
- QQuickPopup *popup2 = helper.appWindow->property("popup2").value<QQuickPopup*>();
- QVERIFY(popup2);
-
- popup1->open();
- QVERIFY(popup1->isVisible());
- QTRY_VERIFY(popup1->hasActiveFocus());
-
- popup2->open();
- popup1->close();
-
- QSignalSpy closedSpy(popup1, SIGNAL(closed()));
- QVERIFY(closedSpy.isValid());
- QVERIFY(closedSpy.wait());
-
- QVERIFY(!popup1->isVisible());
- QVERIFY(popup2->isVisible());
- QTRY_VERIFY(popup2->hasActiveFocus());
-}
-
-void tst_QQuickPopup::activeFocusOnClosingSeveralPopups()
-{
- // Test that active focus isn't lost when multiple popup closing simultaneously
- QQuickApplicationHelper helper(this, QStringLiteral("activeFocusOnClosingSeveralPopups.qml"));
- QVERIFY2(helper.ready, helper.failureMessage());
- QQuickApplicationWindow *window = helper.appWindow;
- window->show();
- window->requestActivate();
- QVERIFY(QTest::qWaitForWindowActive(window));
-
- QQuickItem *button = window->property("button").value<QQuickItem *>();
- QVERIFY(button);
-
- QQuickPopup *popup1 = window->property("popup1").value<QQuickPopup *>();
- QVERIFY(popup1);
-
- QQuickPopup *popup2 = window->property("popup2").value<QQuickPopup *>();
- QVERIFY(popup2);
-
- QCOMPARE(button->hasActiveFocus(), true);
- popup1->open();
- QTRY_VERIFY(popup1->isOpened());
- QVERIFY(popup1->hasActiveFocus());
- popup2->open();
- QTRY_VERIFY(popup2->isOpened());
- QVERIFY(popup2->hasActiveFocus());
- QTRY_COMPARE(button->hasActiveFocus(), false);
- // close the unfocused popup first
- popup1->close();
- popup2->close();
- QTRY_VERIFY(!popup1->isVisible());
- QTRY_VERIFY(!popup2->isVisible());
- QTRY_COMPARE(button->hasActiveFocus(), true);
-
- popup1->open();
- QTRY_VERIFY(popup1->isOpened());
- QVERIFY(popup1->hasActiveFocus());
- popup2->open();
- QTRY_VERIFY(popup2->isOpened());
- QVERIFY(popup2->hasActiveFocus());
- QTRY_COMPARE(button->hasActiveFocus(), false);
- // close the focused popup first
- popup2->close();
- popup1->close();
- QTRY_VERIFY(!popup1->isVisible());
- QTRY_VERIFY(!popup2->isVisible());
- QTRY_COMPARE(button->hasActiveFocus(), true);
-}
-
-void tst_QQuickPopup::hover_data()
-{
- QTest::addColumn<QString>("source");
- QTest::addColumn<bool>("modal");
-
- QTest::newRow("Window:modal") << "window-hover.qml" << true;
- QTest::newRow("Window:modeless") << "window-hover.qml" << false;
- QTest::newRow("ApplicationWindow:modal") << "applicationwindow-hover.qml" << true;
- QTest::newRow("ApplicationWindow:modeless") << "applicationwindow-hover.qml" << false;
-}
-
-void tst_QQuickPopup::hover()
-{
- QFETCH(QString, source);
- QFETCH(bool, modal);
-
- QQuickApplicationHelper helper(this, source);
- QVERIFY2(helper.ready, helper.failureMessage());
- QQuickWindow *window = helper.window;
- window->show();
- window->requestActivate();
- QVERIFY(QTest::qWaitForWindowActive(window));
-
- QQuickPopup *popup = window->property("popup").value<QQuickPopup*>();
- QVERIFY(popup);
- popup->setModal(modal);
-
- QQuickButton *parentButton = window->property("parentButton").value<QQuickButton*>();
- QVERIFY(parentButton);
- parentButton->setHoverEnabled(true);
-
- QQuickButton *childButton = window->property("childButton").value<QQuickButton*>();
- QVERIFY(childButton);
- childButton->setHoverEnabled(true);
-
- QSignalSpy openedSpy(popup, SIGNAL(opened()));
- QVERIFY(openedSpy.isValid());
- popup->open();
- QVERIFY(openedSpy.count() == 1 || openedSpy.wait());
- QTRY_VERIFY(popup->width() > 10); // somehow this can take a short time with macOS style
-
- // hover the parent button outside the popup
- QTest::mouseMove(window, QPoint(window->width() - 1, window->height() - 1));
- QCOMPARE(parentButton->isHovered(), !modal);
- QVERIFY(!childButton->isHovered());
-
- // hover the popup background
- QTest::mouseMove(window, QPoint(1, 1));
- QVERIFY(!parentButton->isHovered());
- QVERIFY(!childButton->isHovered());
-
- // hover the child button in a popup
- QTest::mouseMove(window, QPoint(popup->x() + popup->width() / 2, popup->y() + popup->height() / 2));
- QVERIFY(!parentButton->isHovered());
- QVERIFY(childButton->isHovered());
-
- QSignalSpy closedSpy(popup, SIGNAL(closed()));
- QVERIFY(closedSpy.isValid());
- popup->close();
- QVERIFY(closedSpy.count() == 1 || closedSpy.wait());
-
- // hover the parent button after closing the popup
- QTest::mouseMove(window, QPoint(window->width() / 2, window->height() / 2));
- QVERIFY(parentButton->isHovered());
-}
-
-void tst_QQuickPopup::wheel_data()
-{
- QTest::addColumn<QString>("source");
- QTest::addColumn<bool>("modal");
-
- QTest::newRow("Window:modal") << "window-wheel.qml" << true;
- QTest::newRow("Window:modeless") << "window-wheel.qml" << false;
- QTest::newRow("ApplicationWindow:modal") << "applicationwindow-wheel.qml" << true;
- QTest::newRow("ApplicationWindow:modeless") << "applicationwindow-wheel.qml" << false;
-}
-
-static bool sendWheelEvent(QQuickItem *item, const QPoint &localPos, int degrees)
-{
- QQuickWindow *window = item->window();
- QWheelEvent wheelEvent(localPos, item->window()->mapToGlobal(localPos), QPoint(0, 0),
- QPoint(0, 8 * degrees), Qt::NoButton, Qt::NoModifier, Qt::NoScrollPhase,
- false);
- QSpontaneKeyEvent::setSpontaneous(&wheelEvent);
- return qGuiApp->notify(window, &wheelEvent);
-}
-
-void tst_QQuickPopup::wheel()
-{
- QFETCH(QString, source);
- QFETCH(bool, modal);
-
- QQuickApplicationHelper helper(this, source);
- QVERIFY2(helper.ready, helper.failureMessage());
- QQuickWindow *window = helper.window;
- window->show();
- QVERIFY(QTest::qWaitForWindowExposed(window));
-
- QQuickSlider *contentSlider = window->property("contentSlider").value<QQuickSlider*>();
- QVERIFY(contentSlider);
-
- QQuickPopup *popup = window->property("popup").value<QQuickPopup*>();
- QVERIFY(popup && popup->contentItem());
- popup->setModal(modal);
-
- QQuickSlider *popupSlider = window->property("popupSlider").value<QQuickSlider*>();
- QVERIFY(popupSlider);
-
- {
- // wheel over the content
- qreal oldContentValue = contentSlider->value();
- qreal oldPopupValue = popupSlider->value();
-
- QVERIFY(sendWheelEvent(contentSlider, QPoint(contentSlider->width() / 2, contentSlider->height() / 2), 15));
-
- QVERIFY(!qFuzzyCompare(contentSlider->value(), oldContentValue)); // must have moved
- QVERIFY(qFuzzyCompare(popupSlider->value(), oldPopupValue)); // must not have moved
- }
-
- QSignalSpy openedSpy(popup, SIGNAL(opened()));
- QVERIFY(openedSpy.isValid());
- popup->open();
- QVERIFY(openedSpy.count() == 1 || openedSpy.wait());
-
- {
- // wheel over the popup content
- qreal oldContentValue = contentSlider->value();
- qreal oldPopupValue = popupSlider->value();
-
- QVERIFY(sendWheelEvent(popupSlider, QPoint(popupSlider->width() / 2, popupSlider->height() / 2), 15));
-
- QVERIFY(qFuzzyCompare(contentSlider->value(), oldContentValue)); // must not have moved
- QVERIFY(!qFuzzyCompare(popupSlider->value(), oldPopupValue)); // must have moved
- }
-
- {
- // wheel over the overlay
- qreal oldContentValue = contentSlider->value();
- qreal oldPopupValue = popupSlider->value();
-
- QVERIFY(sendWheelEvent(QQuickOverlay::overlay(window), QPoint(0, 0), 15));
-
- if (modal) {
- // the content below a modal overlay must not move
- QVERIFY(qFuzzyCompare(contentSlider->value(), oldContentValue));
- } else {
- // the content below a modeless overlay must move
- QVERIFY(!qFuzzyCompare(contentSlider->value(), oldContentValue));
- }
- QVERIFY(qFuzzyCompare(popupSlider->value(), oldPopupValue)); // must not have moved
- }
-}
-
-void tst_QQuickPopup::parentDestroyed()
-{
- QQuickPopup popup;
- popup.setParentItem(new QQuickItem);
- delete popup.parentItem();
- QVERIFY(!popup.parentItem());
-}
-
-void tst_QQuickPopup::nested()
-{
- QQuickApplicationHelper helper(this, QStringLiteral("nested.qml"));
- QVERIFY2(helper.ready, helper.failureMessage());
- QQuickWindow *window = helper.window;
- window->show();
- QVERIFY(QTest::qWaitForWindowExposed(window));
-
- QQuickPopup *modalPopup = window->property("modalPopup").value<QQuickPopup *>();
- QVERIFY(modalPopup);
-
- QQuickPopup *modelessPopup = window->property("modelessPopup").value<QQuickPopup *>();
- QVERIFY(modelessPopup);
-
- modalPopup->open();
- QCOMPARE(modalPopup->isVisible(), true);
- QTRY_COMPARE(modalPopup->isOpened(), true);
-
- modelessPopup->open();
- QCOMPARE(modelessPopup->isVisible(), true);
- QTRY_COMPARE(modelessPopup->isOpened(), true);
-
- // click outside the modeless popup on the top, but inside the modal popup below
- QTest::mouseClick(window, Qt::LeftButton, Qt::NoModifier, QPoint(150, 150));
-
- QTRY_COMPARE(modelessPopup->isVisible(), false);
- QCOMPARE(modalPopup->isVisible(), true);
-}
-
-// QTBUG-56697
-void tst_QQuickPopup::grabber()
-{
- QQuickApplicationHelper helper(this, QStringLiteral("grabber.qml"));
- QVERIFY2(helper.ready, helper.failureMessage());
- QQuickWindow *window = helper.window;
- window->show();
- QVERIFY(QTest::qWaitForWindowExposed(window));
-
- QQuickPopup *menu = window->property("menu").value<QQuickPopup *>();
- QVERIFY(menu);
-
- QQuickPopup *popup = window->property("popup").value<QQuickPopup *>();
- QVERIFY(popup);
-
- QQuickPopup *combo = window->property("combo").value<QQuickPopup *>();
- QVERIFY(combo);
-
- menu->open();
- QTRY_COMPARE(menu->isOpened(), true);
- QCOMPARE(popup->isVisible(), false);
- QCOMPARE(combo->isVisible(), false);
-
- // click a menu item to open the popup
- QTest::mouseClick(window, Qt::LeftButton, Qt::NoModifier, QPoint(menu->width() / 2, menu->height() / 2));
- QTRY_COMPARE(menu->isVisible(), false);
- QTRY_COMPARE(popup->isOpened(), true);
- QCOMPARE(combo->isVisible(), false);
-
- combo->open();
- QCOMPARE(menu->isVisible(), false);
- QCOMPARE(popup->isVisible(), true);
- QTRY_COMPARE(combo->isOpened(), true);
-
- // click outside to close both the combo popup and the parent popup
- QTest::mouseClick(window, Qt::LeftButton, Qt::NoModifier, QPoint(window->width() - 1, window->height() - 1));
- QCOMPARE(menu->isVisible(), false);
- QTRY_COMPARE(popup->isVisible(), false);
- QTRY_COMPARE(combo->isVisible(), false);
-
- menu->open();
- QTRY_COMPARE(menu->isOpened(), true);
- QCOMPARE(popup->isVisible(), false);
- QCOMPARE(combo->isVisible(), false);
-
- // click outside the menu to close it (QTBUG-56697)
- QTest::mouseClick(window, Qt::LeftButton, Qt::NoModifier, QPoint(window->width() - 1, window->height() - 1));
- QTRY_COMPARE(menu->isVisible(), false);
- QCOMPARE(popup->isVisible(), false);
- QCOMPARE(combo->isVisible(), false);
-}
-
-void tst_QQuickPopup::cursorShape()
-{
- // Ensure that the mouse cursor has the correct shape when over a popup
- // which is itself over an item with a different shape.
- QQuickApplicationHelper helper(this, QStringLiteral("cursor.qml"));
- QVERIFY2(helper.ready, helper.failureMessage());
- QQuickApplicationWindow *window = helper.appWindow;
- centerOnScreen(window);
- moveMouseAway(window);
- window->show();
- QVERIFY(QTest::qWaitForWindowExposed(window));
-
- QQuickPopup *popup = helper.appWindow->property("popup").value<QQuickPopup*>();
- QVERIFY(popup);
-
- popup->open();
- QVERIFY(popup->isVisible());
- QTRY_VERIFY(popup->isOpened());
-
- QQuickItem *textField = helper.appWindow->property("textField").value<QQuickItem*>();
- QVERIFY(textField);
-
- // Move the mouse over the text field.
- const QPoint textFieldPos(popup->x() - 10, textField->height() / 2);
- QVERIFY(textField->contains(textField->mapFromScene(textFieldPos)));
- QTest::mouseMove(window, textFieldPos);
- QTRY_COMPARE(window->cursor().shape(), textField->cursor().shape());
-
- // Move the mouse over the popup where it overlaps with the text field.
- const QPoint textFieldOverlapPos(popup->x() + 10, textField->height() / 2);
- QTest::mouseMove(window, textFieldOverlapPos);
- QTRY_COMPARE(window->cursor().shape(), popup->popupItem()->cursor().shape());
-
- popup->close();
- QTRY_VERIFY(!popup->isVisible());
-}
-
-class FriendlyPopup : public QQuickPopup
-{
- friend class tst_QQuickPopup;
-};
-
-void tst_QQuickPopup::componentComplete()
-{
- FriendlyPopup cppPopup;
- QVERIFY(cppPopup.isComponentComplete());
-
- QQmlEngine engine;
- QQmlComponent component(&engine);
- component.setData("import QtQuick.Controls; Popup { }", QUrl());
-
- QScopedPointer<QObject> o(component.beginCreate(engine.rootContext()));
- FriendlyPopup *qmlPopup = static_cast<FriendlyPopup *>(o.data());
- QVERIFY(qmlPopup);
- QVERIFY(!qmlPopup->isComponentComplete());
-
- component.completeCreate();
- QVERIFY(qmlPopup->isComponentComplete());
-}
-
-void tst_QQuickPopup::closeOnEscapeWithNestedPopups()
-{
- // Tests the scenario in the Gallery example, where there are nested popups that should
- // close in the correct order when the Escape key is pressed.
- QQuickApplicationHelper helper(this, QStringLiteral("closeOnEscapeWithNestedPopups.qml"));
- QVERIFY2(helper.ready, helper.failureMessage());
- QQuickApplicationWindow *window = helper.appWindow;
- window->show();
- QVERIFY(QTest::qWaitForWindowExposed(window));
-
- // The stack view should have two items, and it should pop the second when escape is pressed
- // and it has focus.
- QQuickStackView *stackView = window->findChild<QQuickStackView*>("stackView");
- QVERIFY(stackView);
- QCOMPARE(stackView->depth(), 2);
-
- QQuickItem *optionsToolButton = window->findChild<QQuickItem*>("optionsToolButton");
- QVERIFY(optionsToolButton);
-
- // Click on the options tool button. The settings menu should pop up.
- const QPoint optionsToolButtonCenter = optionsToolButton->mapToScene(
- QPointF(optionsToolButton->width() / 2, optionsToolButton->height() / 2)).toPoint();
- QTest::mouseClick(window, Qt::LeftButton, Qt::NoModifier, optionsToolButtonCenter);
-
- QQuickPopup *optionsMenu = window->findChild<QQuickPopup*>("optionsMenu");
- QVERIFY(optionsMenu);
- QTRY_VERIFY(optionsMenu->isOpened());
-
- QQuickItem *settingsMenuItem = window->findChild<QQuickItem*>("settingsMenuItem");
- QVERIFY(settingsMenuItem);
-
- // Click on the settings menu item. The settings dialog should pop up.
- const QPoint settingsMenuItemCenter = settingsMenuItem->mapToScene(
- QPointF(settingsMenuItem->width() / 2, settingsMenuItem->height() / 2)).toPoint();
- QTest::mouseClick(window, Qt::LeftButton, Qt::NoModifier, settingsMenuItemCenter);
-
- QQuickPopup *settingsDialog = window->contentItem()->findChild<QQuickPopup*>("settingsDialog");
- QVERIFY(settingsDialog);
- QTRY_VERIFY(settingsDialog->isOpened());
-
- QQuickComboBox *comboBox = window->contentItem()->findChild<QQuickComboBox*>("comboBox");
- QVERIFY(comboBox);
-
- // Click on the combo box button. The combo box popup should pop up.
- const QPoint comboBoxCenter = comboBox->mapToScene(
- QPointF(comboBox->width() / 2, comboBox->height() / 2)).toPoint();
- QTest::mouseClick(window, Qt::LeftButton, Qt::NoModifier, comboBoxCenter);
- QTRY_VERIFY(comboBox->popup()->isOpened());
-
- // Close the combo box popup with the escape key. The settings dialog should still be visible.
- QTest::keyClick(window, Qt::Key_Escape);
- QTRY_VERIFY(!comboBox->popup()->isVisible());
- QVERIFY(settingsDialog->isVisible());
-
- // Close the settings dialog with the escape key.
- QTest::keyClick(window, Qt::Key_Escape);
- QTRY_VERIFY(!settingsDialog->isVisible());
-
- // The stack view should still have two items.
- QCOMPARE(stackView->depth(), 2);
-
- // Remove one by pressing the Escape key (the Shortcut should be activated).
- QTest::keyClick(window, Qt::Key_Escape);
- QCOMPARE(stackView->depth(), 1);
-}
-
-void tst_QQuickPopup::closeOnEscapeWithVisiblePopup()
-{
- QQuickApplicationHelper helper(this, QStringLiteral("closeOnEscapeWithVisiblePopup.qml"));
- QVERIFY2(helper.ready, helper.failureMessage());
- QQuickWindow *window = helper.window;
- window->show();
- QVERIFY(QTest::qWaitForWindowActive(window));
-
- QQuickPopup *popup = window->findChild<QQuickPopup *>("popup");
- QVERIFY(popup);
- QTRY_VERIFY(popup->isOpened());
-
- QTRY_VERIFY(window->activeFocusItem());
- QTest::keyClick(window, Qt::Key_Escape);
- QTRY_VERIFY(!popup->isVisible());
-}
-
-void tst_QQuickPopup::enabled()
-{
- QQuickPopup popup;
- QVERIFY(popup.isEnabled());
- QVERIFY(popup.popupItem()->isEnabled());
-
- QSignalSpy enabledSpy(&popup, &QQuickPopup::enabledChanged);
- QVERIFY(enabledSpy.isValid());
-
- popup.setEnabled(false);
- QVERIFY(!popup.isEnabled());
- QVERIFY(!popup.popupItem()->isEnabled());
- QCOMPARE(enabledSpy.count(), 1);
-
- popup.popupItem()->setEnabled(true);
- QVERIFY(popup.isEnabled());
- QVERIFY(popup.popupItem()->isEnabled());
- QCOMPARE(enabledSpy.count(), 2);
-}
-
-void tst_QQuickPopup::orientation_data()
-{
- QTest::addColumn<Qt::ScreenOrientation>("orientation");
- QTest::addColumn<QPointF>("position");
-
- QTest::newRow("Portrait") << Qt::PortraitOrientation << QPointF(330, 165);
- QTest::newRow("Landscape") << Qt::LandscapeOrientation << QPointF(165, 270);
- QTest::newRow("InvertedPortrait") << Qt::InvertedPortraitOrientation << QPointF(270, 135);
- QTest::newRow("InvertedLandscape") << Qt::InvertedLandscapeOrientation << QPointF(135, 330);
-}
-
-void tst_QQuickPopup::orientation()
-{
- QFETCH(Qt::ScreenOrientation, orientation);
- QFETCH(QPointF, position);
-
- QQuickApplicationHelper helper(this, "orientation.qml");
- QVERIFY2(helper.ready, helper.failureMessage());
-
- QQuickWindow *window = helper.window;
- window->reportContentOrientationChange(orientation);
- window->show();
- QVERIFY(QTest::qWaitForWindowActive(window));
-
- QQuickPopup *popup = window->property("popup").value<QQuickPopup*>();
- QVERIFY(popup);
- popup->open();
- QTRY_VERIFY(popup->isOpened());
- QCOMPARE(popup->popupItem()->position(), position);
-}
-
-void tst_QQuickPopup::qquickview()
-{
- QQuickView view;
- view.setObjectName("QQuickView");
- view.resize(400, 400);
- view.setSource(testFileUrl("dialog.qml"));
- QVERIFY(view.status() != QQuickView::Error);
- view.contentItem()->setObjectName("QQuickViewContentItem");
- view.show();
-
- QQuickDialog *dialog = view.rootObject()->property("dialog").value<QQuickDialog*>();
- QVERIFY(dialog);
- QTRY_COMPARE(dialog->property("opened").toBool(), true);
-
- dialog->close();
- QTRY_COMPARE(dialog->property("visible").toBool(), false);
-
- // QTBUG-72746: shouldn't crash on application exit after closing a Dialog when using QQuickView.
-}
-
-// TODO: also test it out without setting enabled directly on menu, but on a parent
-
-// QTBUG-73447
-void tst_QQuickPopup::disabledPalette()
-{
- QQuickApplicationHelper helper(this, "disabledPalette.qml");
- QVERIFY2(helper.ready, helper.failureMessage());
-
- QQuickWindow *window = helper.window;
- window->show();
- QVERIFY(QTest::qWaitForWindowActive(window));
-
- QQuickPopup *popup = window->property("popup").value<QQuickPopup*>();
- QVERIFY(popup);
-
- QSignalSpy popupEnabledSpy(popup, &QQuickPopup::enabledChanged);
- QVERIFY(popupEnabledSpy.isValid());
- QSignalSpy popupPaletteSpy(popup, &QQuickPopup::paletteChanged);
- QVERIFY(popupPaletteSpy.isValid());
-
- QSignalSpy popupItemEnabledSpy(popup->popupItem(), &QQuickItem::enabledChanged);
- QVERIFY(popupItemEnabledSpy.isValid());
- QSignalSpy popupItemPaletteSpy(popup->popupItem(), &QQuickItem::paletteChanged);
- QVERIFY(popupItemPaletteSpy.isValid());
-
- auto palette = QQuickPopupPrivate::get(popup)->palette();
- palette->setBase(Qt::green);
- palette->disabled()->setBase(Qt::red);
- QCOMPARE(popupPaletteSpy.count(), 2);
- QCOMPARE(popupItemPaletteSpy.count(), 2);
- QCOMPARE(popup->background()->property("color").value<QColor>(), Qt::green);
-
- popup->setEnabled(false);
- QCOMPARE(popupEnabledSpy.count(), 1);
- QCOMPARE(popupItemEnabledSpy.count(), 1);
- QCOMPARE(popupPaletteSpy.count(), 3);
- QCOMPARE(popupItemPaletteSpy.count(), 3);
- QCOMPARE(popup->background()->property("color").value<QColor>(), Qt::red);
-}
-
-void tst_QQuickPopup::disabledParentPalette()
-{
- QQuickApplicationHelper helper(this, "disabledPalette.qml");
- QVERIFY2(helper.ready, helper.failureMessage());
-
- QQuickWindow *window = helper.window;
- window->show();
- QVERIFY(QTest::qWaitForWindowActive(window));
-
- QQuickPopup *popup = window->property("popup").value<QQuickPopup*>();
- QVERIFY(popup);
-
- QSignalSpy popupEnabledSpy(popup, SIGNAL(enabledChanged()));
- QVERIFY(popupEnabledSpy.isValid());
- QSignalSpy popupPaletteSpy(popup, SIGNAL(paletteChanged()));
- QVERIFY(popupPaletteSpy.isValid());
-
- QSignalSpy popupItemEnabledSpy(popup->popupItem(), SIGNAL(enabledChanged()));
- QVERIFY(popupItemEnabledSpy.isValid());
- QSignalSpy popupItemPaletteSpy(popup->popupItem(), SIGNAL(paletteChanged()));
- QVERIFY(popupItemPaletteSpy.isValid());
-
- auto palette = QQuickPopupPrivate::get(popup)->palette();
- palette->setBase(Qt::green);
- palette->disabled()->setBase(Qt::red);
- QCOMPARE(popupPaletteSpy.count(), 2);
- QCOMPARE(popupItemPaletteSpy.count(), 2);
- QCOMPARE(popup->background()->property("color").value<QColor>(), Qt::green);
-
- // Disable the overlay (which is QQuickPopupItem's parent) to ensure that
- // the palette is changed when the popup is indirectly disabled.
- popup->open();
- QTRY_VERIFY(popup->isOpened());
- QVERIFY(QMetaObject::invokeMethod(window, "disableOverlay"));
- QVERIFY(!popup->isEnabled());
- QVERIFY(!popup->popupItem()->isEnabled());
- QCOMPARE(popup->background()->property("color").value<QColor>(), Qt::red);
- QCOMPARE(popupEnabledSpy.count(), 1);
- QCOMPARE(popupItemEnabledSpy.count(), 1);
- QCOMPARE(popupPaletteSpy.count(), 3);
- QCOMPARE(popupItemPaletteSpy.count(), 3);
-
- popup->close();
- QTRY_VERIFY(!popup->isVisible());
-}
-
-void tst_QQuickPopup::countChanged()
-{
- QQuickApplicationHelper helper(this, "countChanged.qml");
- QVERIFY2(helper.ready, helper.failureMessage());
-
- QQuickWindow *window = helper.window;
- window->show();
- QVERIFY(QTest::qWaitForWindowActive(window));
-
- QQuickComboBox *comboBox = window->property("comboBox").value<QQuickComboBox*>();
- QVERIFY(comboBox);
- QCOMPARE(window->property("count").toInt(), 1);
-
- QVERIFY(window->setProperty("isModel1", false));
- QTRY_COMPARE(window->property("count").toInt(), 2);
-}
-
-// QTBUG-73243
-void tst_QQuickPopup::toolTipCrashOnClose()
-{
- if (QOperatingSystemVersion::current() <= QOperatingSystemVersion::Windows7)
- QSKIP("Test requires a version of Windows newer than 7: QTBUG-84443");
- if (!canImportModule("import QtGraphicalEffects; DropShadow {}"))
- QSKIP("Test requires QtGraphicalEffects");
-
- QQuickApplicationHelper helper(this, "toolTipCrashOnClose.qml");
- QVERIFY2(helper.ready, helper.failureMessage());
-
- QQuickWindow *window = helper.window;
- window->show();
- QVERIFY(QTest::qWaitForWindowActive(window));
-
- QTest::mouseMove(window, QPoint(window->width() / 2, window->height() / 2));
- QTRY_VERIFY(window->property("toolTipOpened").toBool());
-
- QVERIFY(window->close());
- // Shouldn't crash.
-}
-
-void tst_QQuickPopup::setOverlayParentToNull()
-{
- if (QOperatingSystemVersion::current() <= QOperatingSystemVersion::Windows7)
- QSKIP("Test requires a version of Windows newer than 7: QTBUG-84443");
- if (!canImportModule("import QtGraphicalEffects; DropShadow {}"))
- QSKIP("Test requires QtGraphicalEffects");
-
- QQuickApplicationHelper helper(this, "toolTipCrashOnClose.qml");
- QVERIFY2(helper.ready, helper.failureMessage());
-
- QQuickWindow *window = helper.window;
- centerOnScreen(window);
- moveMouseAway(window);
- window->show();
- QVERIFY(QTest::qWaitForWindowActive(window));
-
- QVERIFY(QMetaObject::invokeMethod(window, "nullifyOverlayParent"));
-
- QTest::mouseMove(window, QPoint(window->width() / 2, window->height() / 2));
- QTRY_VERIFY(window->property("toolTipOpened").toBool());
-
- QVERIFY(window->close());
- // While nullifying the overlay parent doesn't make much sense, it shouldn't crash.
-}
-
-void tst_QQuickPopup::tabFence()
-{
- if (QGuiApplication::styleHints()->tabFocusBehavior() != Qt::TabFocusAllControls)
- QSKIP("This platform only allows tab focus for text controls");
-
- QQuickApplicationHelper helper(this, "tabFence.qml");
- QVERIFY2(helper.ready, helper.failureMessage());
-
- QQuickWindow *window = helper.window;
- window->show();
- QVERIFY(QTest::qWaitForWindowActive(window));
-
- QQuickPopup *popup = window->property("dialog").value<QQuickPopup*>();
- QVERIFY(popup);
- popup->setModal(true);
- popup->open();
- QTRY_VERIFY(popup->isOpened());
-
- QQuickButton *outsideButton1 = window->property("outsideButton1").value<QQuickButton*>();
- QVERIFY(outsideButton1);
- QQuickButton *outsideButton2 = window->property("outsideButton2").value<QQuickButton*>();
- QVERIFY(outsideButton2);
- QQuickButton *dialogButton1 = window->property("dialogButton1").value<QQuickButton*>();
- QVERIFY(dialogButton1);
- QQuickButton *dialogButton2 = window->property("dialogButton2").value<QQuickButton*>();
- QVERIFY(dialogButton2);
-
- // When modal, focus loops between the two external buttons
- outsideButton1->forceActiveFocus();
- QVERIFY(outsideButton1->hasActiveFocus());
- QTest::keyClick(window, Qt::Key_Tab);
- QVERIFY(outsideButton2->hasActiveFocus());
- QTest::keyClick(window, Qt::Key_Tab);
- QVERIFY(outsideButton1->hasActiveFocus());
-
- // Same thing for dialog's buttons
- dialogButton1->forceActiveFocus();
- QVERIFY(dialogButton1->hasActiveFocus());
- QTest::keyClick(window, Qt::Key_Tab);
- QVERIFY(dialogButton2->hasActiveFocus());
- QTest::keyClick(window, Qt::Key_Tab);
- QVERIFY(dialogButton1->hasActiveFocus());
-
- popup->setModal(false);
-
- // When not modal, focus goes in and out of the dialog
- outsideButton1->forceActiveFocus();
- QVERIFY(outsideButton1->hasActiveFocus());
- QTest::keyClick(window, Qt::Key_Tab);
- QVERIFY(outsideButton2->hasActiveFocus());
- QTest::keyClick(window, Qt::Key_Tab);
- QVERIFY(dialogButton1->hasActiveFocus());
- QTest::keyClick(window, Qt::Key_Tab);
- QVERIFY(dialogButton2->hasActiveFocus());
- QTest::keyClick(window, Qt::Key_Tab);
- QVERIFY(outsideButton1->hasActiveFocus());
-}
-
-void tst_QQuickPopup::invisibleToolTipOpen()
-{
- QQuickApplicationHelper helper(this, "invisibleToolTipOpen.qml");
- QVERIFY2(helper.ready, helper.failureMessage());
-
- QQuickWindow *window = helper.window;
- centerOnScreen(window);
- moveMouseAway(window);
- window->show();
- QVERIFY(QTest::qWaitForWindowActive(window));
-
- QQuickItem *mouseArea = qvariant_cast<QQuickItem *>(window->property("mouseArea"));
- QVERIFY(mouseArea);
- auto toolTipAttached = qobject_cast<QQuickToolTipAttached*>(
- qmlAttachedPropertiesObject<QQuickToolTip>(mouseArea, false));
- QVERIFY(toolTipAttached);
- QQuickPopup *toolTip = toolTipAttached->toolTip();
- QVERIFY(toolTip);
- QObject *loader = qvariant_cast<QObject *>(window->property("loader"));
- QVERIFY(loader);
-
- // Send an extra move event, otherwise the test fails on subsequent runs for different styles for some reason...
- // As an added bonus, this is also slightly more realistic. :D
- QTest::mouseMove(window, QPoint(mouseArea->width() / 2 - 1, mouseArea->height() / 2 - 1));
- QTest::mouseMove(window, QPoint(mouseArea->width() / 2, mouseArea->height() / 2));
- QTRY_VERIFY(toolTip->isOpened());
-
- QSignalSpy componentLoadedSpy(loader, SIGNAL(loaded()));
- QVERIFY(componentLoadedSpy.isValid());
-
- loader->setProperty("active", true);
- QTRY_COMPARE(componentLoadedSpy.count(), 1);
-
- QTRY_VERIFY(toolTip->isVisible());
-}
-
-void tst_QQuickPopup::centerInOverlayWithinStackViewItem()
-{
- QQuickApplicationHelper helper(this, "centerInOverlayWithinStackViewItem.qml");
- QVERIFY2(helper.ready, helper.failureMessage());
-
- QQuickWindow *window = helper.window;
- window->show();
- QVERIFY(QTest::qWaitForWindowExposed(window));
-
- QQuickPopup *popup = window->property("popup").value<QQuickPopup*>();
- QVERIFY(popup);
- QTRY_COMPARE(popup->isVisible(), true);
-
- // Shouldn't crash on exit.
-}
-
-void tst_QQuickPopup::destroyDuringExitTransition()
-{
- QQuickApplicationHelper helper(this, "destroyDuringExitTransition.qml");
- QVERIFY2(helper.ready, helper.failureMessage());
-
- QQuickWindow *window = helper.window;
- window->show();
- QVERIFY(QTest::qWaitForWindowActive(window));
-
- {
- QPointer<QQuickPopup> dialog2 = window->property("dialog2").value<QQuickPopup*>();
- QVERIFY(dialog2);
- QTRY_COMPARE(dialog2->isOpened(), true);
-
- // Close the second dialog, destroying it before its exit transition can finish.
- QTest::keyClick(window, Qt::Key_Escape);
- QTRY_VERIFY(!dialog2);
- }
-
- // Events should go through to the dialog underneath.
- QQuickPopup *dialog1 = window->property("dialog1").value<QQuickPopup*>();
- QVERIFY(dialog1);
- QTRY_COMPARE(dialog1->isOpened(), true);
- QQuickButton *button = dialog1->property("button").value<QQuickButton*>();
- QVERIFY(button);
- const auto buttonClickPos = button->mapToScene(QPointF(button->width() / 2, button->height() / 2)).toPoint();
- QTest::mousePress(window, Qt::LeftButton, Qt::NoModifier, buttonClickPos);
- QVERIFY(button->isDown());
- QTest::mouseRelease(window, Qt::LeftButton, Qt::NoModifier, buttonClickPos);
- QVERIFY(!button->isDown());
-}
-
-QTEST_QUICKCONTROLS_MAIN(tst_QQuickPopup)
-
-#include "tst_qquickpopup.moc"