Unity 8
inputeventgenerator.cpp
1 /*
2  * Copyright (C) 2016 Canonical, Ltd.
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; version 3.
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program. If not, see <http://www.gnu.org/licenses/>.
15  */
16 
17 #include "inputeventgenerator.h"
18 
19 #include <QQuickWindow>
20 #include <QDebug>
21 #include <QDateTime>
22 
23 InputEventGenerator::InputEventGenerator(QQuickItem *parent)
24  : QQuickItem(parent)
25 {
26 }
27 
28 void InputEventGenerator::generateKeyEvent(Qt::Key key, bool pressed, Qt::KeyboardModifiers modifiers, quint64 timestamp, quint32 nativeScanCode, const QString &text)
29 {
30  QEvent::Type type = pressed ? QEvent::KeyPress : QEvent::KeyRelease;
31  QKeyEvent ev(type, key, modifiers, nativeScanCode, 0, 0, text);
32  ev.setTimestamp(timestamp);
33  QCoreApplication::sendEvent(window(), &ev);
34 }
Q_INVOKABLE void generateKeyEvent(Qt::Key key, bool pressed, Qt::KeyboardModifiers modifiers=Qt::NoModifier, quint64 timestamp=QDateTime::currentMSecsSinceEpoch(), quint32 nativeScanCode=0, const QString &text=QString())