| /**************************************************************************** |
| ** |
| ** Copyright (C) 2016 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:GPL-EXCEPT$ |
| ** 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. |
| ** |
| ** GNU General Public License Usage |
| ** Alternatively, this file may be used under the terms of the GNU |
| ** General Public License version 3 as published by the Free Software |
| ** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT |
| ** included in the packaging of this file. Please review the following |
| ** information to ensure the GNU General Public License requirements will |
| ** be met: https://www.gnu.org/licenses/gpl-3.0.html. |
| ** |
| ** $QT_END_LICENSE$ |
| ** |
| ****************************************************************************/ |
| |
| import QtQuick 2.0 |
| |
| Item { |
| id: root |
| |
| property alias source: source |
| property alias primaryTarget: primaryTarget |
| property alias secondaryTarget: secondaryTarget |
| |
| property var pressedKeys: [] |
| property var releasedKeys: [] |
| Keys.onPressed: { var keys = pressedKeys; keys.push(event.key); pressedKeys = keys } |
| Keys.onReleased: { var keys = releasedKeys; keys.push(event.key); releasedKeys = keys } |
| |
| Item { |
| id: primaryTarget |
| objectName: "primary" |
| property var pressedKeys: [] |
| property var releasedKeys: [] |
| Keys.forwardTo: [ secondaryTarget, extraTarget ] |
| Keys.onPressed: { event.accepted = event.key === Qt.Key_P; var keys = pressedKeys; keys.push(event.key); pressedKeys = keys } |
| Keys.onReleased: { event.accepted = event.key === Qt.Key_P; var keys = releasedKeys; keys.push(event.key); releasedKeys = keys } |
| |
| Item { |
| id: source |
| objectName: "source" |
| property var pressedKeys: [] |
| property var releasedKeys: [] |
| Keys.forwardTo: primaryTarget |
| Keys.onPressed: { var keys = pressedKeys; keys.push(event.key); pressedKeys = keys } |
| Keys.onReleased: { var keys = releasedKeys; keys.push(event.key); releasedKeys = keys } |
| } |
| } |
| |
| Item { |
| id: secondaryTarget |
| objectName: "secondary" |
| property var pressedKeys: [] |
| property var releasedKeys: [] |
| Keys.onPressed: { event.accepted = event.key === Qt.Key_S; var keys = pressedKeys; keys.push(event.key); pressedKeys = keys } |
| Keys.onReleased: { event.accepted = event.key === Qt.Key_S; var keys = releasedKeys; keys.push(event.key); releasedKeys = keys } |
| } |
| |
| Item { |
| id: extraTarget |
| } |
| } |