aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/quickcontrols2/qquickpopup
diff options
context:
space:
mode:
authorMitch Curtis <mitch.curtis@qt.io>2021-08-12 14:39:51 +0200
committerMitch Curtis <mitch.curtis@qt.io>2021-08-16 12:52:59 +0200
commit809339d1484cf556512534367b8170bc26baf072 (patch)
tree12871313b658f36d058b5ef25af1e247e9c46ce9 /tests/auto/quickcontrols2/qquickpopup
parentb01b4f00eae8022c6a97d90f54dac395144ae095 (diff)
Remove qtquickcontrols2 sources and explain where they wentHEADdev
Now that qtquickcontrols2 has been merged into qtdeclarative, we should make it obvious that this repo should no longer be used, by preventing it from being built. Task-number: QTBUG-95173 Pick-to: 6.2 Change-Id: I95bd6a214f3d75a865ab163ee0a1f9ffbeb7a051 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
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"