bool TestService::mouseClick(QObject* _item, qreal _x, qreal _y, int _button, int _modifiers, int _delay) { QWindow* window = qobject_cast<QWindow*>(_item); if (!window) window = eventWindow(_item); mouseEvent(MouseClick, window, _item, Qt::MouseButton(_button), Qt::KeyboardModifiers(_modifiers), QPointF(_x, _y), _delay); return true; }
bool QuickTestEvent::mouseMove (QObject *item, qreal x, qreal y, int delay, int buttons) { QWindow *view = eventWindow(item); if (!view) return false; QtQuickTest::mouseEvent(QtQuickTest::MouseMove, view, item, Qt::MouseButton(buttons), Qt::NoModifier, QPointF(x, y), delay); return true; }
bool QuickTestEvent::mouseWheel( QObject *item, qreal x, qreal y, int buttons, int modifiers, int xDelta, int yDelta, int delay) { QWindow *view = eventWindow(item); if (!view) return false; QtQuickTest::mouseWheel(view, item, Qt::MouseButtons(buttons), Qt::KeyboardModifiers(modifiers), QPointF(x, y), xDelta, yDelta, delay); return true; }
bool QuickTestEvent::mouseDoubleClickSequence (QObject *item, qreal x, qreal y, int button, int modifiers, int delay) { QWindow *view = eventWindow(item); if (!view) return false; QtQuickTest::mouseEvent(QtQuickTest::MouseDoubleClickSequence, view, item, Qt::MouseButton(button), Qt::KeyboardModifiers(modifiers), QPointF(x, y), delay); return true; }
QWindow* TestService::eventWindow(QObject* _item) { QQuickItem* item = qobject_cast<QQuickItem*>(_item); if (item && item->window()) return item->window(); QWindow* window = qobject_cast<QQuickWindow*>(_item); if (!window && _item->parent()) window = eventWindow(_item->parent()); if (!window) window = qobject_cast<QQuickWindow*>(m_targetWindow); if (window) { window->requestActivate(); std::cout << window->title().toStdString(); return window; } item = qobject_cast<QQuickItem*>(m_targetWindow); if (item) return item->window(); return 0; }
QWindow *QuickTestEvent::activeWindow() { if (QWindow *window = QGuiApplication::focusWindow()) return window; return eventWindow(); }
bool TestService::keyClickChar(QObject* _item, QString const& _character, int _modifiers, int _delay) { QWindow* window = eventWindow(_item); QTest::keyClick(window, _character[0].toLatin1(), Qt::KeyboardModifiers(_modifiers), _delay); return true; }
bool TestService::keyClick(QObject* _item, int _key, int _modifiers, int _delay) { QWindow* window = eventWindow(_item); QTest::keyClick(window, Qt::Key(_key), Qt::KeyboardModifiers(_modifiers), _delay); return true; }
bool TestService::waitForRendering(QObject* _item, int timeout) { QWindow* window = eventWindow(_item); return waitForSignal(window, "frameSwapped()", timeout); }