Warning, /plasma/kwin/tests/unmapdestroytest.qml is written in an unsupported language. File is not indexed.
0001 /*
0002 SPDX-FileCopyrightText: 2014 Martin Gräßlin <mgraesslin@kde.org>
0003
0004 SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0005 */
0006 import QtQuick
0007 import QtQuick.Window
0008 import QtQuick.Layouts
0009 import QtQuick.Controls
0010
0011 /*
0012 * Small test application to test the difference between unmap and destroy.
0013 * The window has two buttons: one called "Unmap" which will hide() the QWindow,
0014 * one called "Destroy" which will close() the QWindow.
0015 *
0016 * The test application can be run with qmlscene:
0017 *
0018 * @code
0019 * qmlscene unmapdestroytest.qml
0020 * @endcode
0021 *
0022 * In order to test different modes, the test application understands some arguments:
0023 * --unmanaged Creates an override redirect window
0024 * --frameless Creates a frameless window (comparable Plasma Dialog)
0025 */
0026
0027 Window {
0028 id: window
0029 visible: false
0030 x: 0
0031 y: 0
0032 width: layout.implicitWidth
0033 height: layout.implicitHeight
0034 color: "black"
0035
0036 RowLayout {
0037 id: layout
0038 Button {
0039 Timer {
0040 id: timer
0041 interval: 2000
0042 running: false
0043 repeat: false
0044 onTriggered: window.show()
0045 }
0046 text: "unmap"
0047 onClicked: {
0048 timer.start();
0049 window.hide();
0050 }
0051 }
0052 Button {
0053 text: "destroy"
0054 onClicked: window.close()
0055 }
0056 }
0057
0058 Component.onCompleted: {
0059 var flags = Qt.Window;
0060 for (var i = 0; i < Qt.application.arguments.length; ++i) {
0061 var argument = Qt.application.arguments[i];
0062 if (argument == "--unmanaged") {
0063 flags = flags | Qt.BypassWindowManagerHint;
0064 }
0065 if (argument == "--frameless") {
0066 flags = flags | Qt.FramelessWindowHint
0067 }
0068 }
0069 window.flags = flags;
0070 window.visible = true;
0071 }
0072 }