kwin/tests/unmapdestroytest.qml
Vlad Zahorodnii 4148be0d27 Port to versionless QML module imports
It's more convenient and Qt upstream seems to encourage to use it too,
e.g. example import statements have no version.
2023-03-12 14:18:34 +00:00

72 lines
1.9 KiB
QML

/*
SPDX-FileCopyrightText: 2014 Martin Gräßlin <mgraesslin@kde.org>
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
*/
import QtQuick
import QtQuick.Window
import QtQuick.Layouts
import QtQuick.Controls
/*
* Small test application to test the difference between unmap and destroy.
* The window has two buttons: one called "Unmap" which will hide() the QWindow,
* one called "Destroy" which will close() the QWindow.
*
* The test application can be run with qmlscene:
*
* @code
* qmlscene unmapdestroytest.qml
* @endcode
*
* In order to test different modes, the test application understands some arguments:
* --unmanaged Creates an override redirect window
* --frameless Creates a frameless window (comparable Plasma Dialog)
*/
Window {
id: window
visible: false
x: 0
y: 0
width: layout.implicitWidth
height: layout.implicitHeight
color: "black"
RowLayout {
id: layout
Button {
Timer {
id: timer
interval: 2000
running: false
repeat: false
onTriggered: window.show()
}
text: "unmap"
onClicked: {
timer.start();
window.hide();
}
}
Button {
text: "destroy"
onClicked: window.close()
}
}
Component.onCompleted: {
var flags = Qt.Window;
for (var i = 0; i < Qt.application.arguments.length; ++i) {
var argument = Qt.application.arguments[i];
if (argument == "--unmanaged") {
flags = flags | Qt.BypassWindowManagerHint;
}
if (argument == "--frameless") {
flags = flags | Qt.FramelessWindowHint
}
}
window.flags = flags;
window.visible = true;
}
}