diff options
-rw-r--r-- | src/qmltest/qmltest.pro | 2 | ||||
-rw-r--r-- | src/qmltest/quicktest.cpp | 9 | ||||
-rw-r--r-- | src/qmltest/quicktestevent.cpp | 58 | ||||
-rw-r--r-- | src/qmltest/quicktestevent_p.h | 4 |
4 files changed, 37 insertions, 36 deletions
diff --git a/src/qmltest/qmltest.pro b/src/qmltest/qmltest.pro index b19ad55092..b0b64cdc6b 100644 --- a/src/qmltest/qmltest.pro +++ b/src/qmltest/qmltest.pro @@ -7,7 +7,7 @@ CONFIG += module CONFIG += dll warn_on declarative_debug MODULE_PRI += ../../modules/qt_qmltest.pri -QT += testlib-private declarative testlib qtquick1 +QT += testlib-private declarative testlib qtquick1 widgets widgets-private gui DEFINES += QT_BUILD_QUICK_TEST_LIB QT_NO_URL_CAST_FROM_STRING diff --git a/src/qmltest/quicktest.cpp b/src/qmltest/quicktest.cpp index c7d9747a3e..641d7e045a 100644 --- a/src/qmltest/quicktest.cpp +++ b/src/qmltest/quicktest.cpp @@ -64,7 +64,7 @@ #include <QtCore/qeventloop.h> #include <QtGui/qtextdocument.h> #include <stdio.h> - +#include <QtGui/QGuiApplication> QT_BEGIN_NAMESPACE @@ -101,9 +101,9 @@ static inline QString stripQuotes(const QString &s) int quick_test_main(int argc, char **argv, const char *name, quick_test_viewport_create createViewport, const char *sourceDir) { - QApplication* app = 0; + QGuiApplication* app = 0; if (!QCoreApplication::instance()) { - app = new QApplication(argc, argv); + app = new QGuiApplication(argc, argv); } // Look for QML-specific command-line options. @@ -215,7 +215,8 @@ int quick_test_main(int argc, char **argv, const char *name, quick_test_viewport // an asynchronous test and we need to show the window // and wait for the quit indication. view.show(); - QTest::qWaitForWindowShown(&view); + //QTest::qWaitForWindowShown(&view); + QTest::qWait(50); rootobj.setWindowShown(true); if (!rootobj.hasQuit) eventLoop.exec(); diff --git a/src/qmltest/quicktestevent.cpp b/src/qmltest/quicktestevent.cpp index 67f1eefe57..9d1e5d1428 100644 --- a/src/qmltest/quicktestevent.cpp +++ b/src/qmltest/quicktestevent.cpp @@ -64,28 +64,28 @@ QuickTestEvent::~QuickTestEvent() bool QuickTestEvent::keyPress(int key, int modifiers, int delay) { - QWidget *widget = eventWidget(); - if (!widget) + QWindow *window = eventWindow(); + if (!window) return false; - QTest::keyPress(widget, Qt::Key(key), Qt::KeyboardModifiers(modifiers), delay); + QTest::keyPress(window, Qt::Key(key), Qt::KeyboardModifiers(modifiers), delay); return true; } bool QuickTestEvent::keyRelease(int key, int modifiers, int delay) { - QWidget *widget = eventWidget(); - if (!widget) + QWindow *window = eventWindow(); + if (!window) return false; - QTest::keyRelease(widget, Qt::Key(key), Qt::KeyboardModifiers(modifiers), delay); + QTest::keyRelease(window, Qt::Key(key), Qt::KeyboardModifiers(modifiers), delay); return true; } bool QuickTestEvent::keyClick(int key, int modifiers, int delay) { - QWidget *widget = eventWidget(); - if (!widget) + QWindow *window = eventWindow(); + if (!window) return false; - QTest::keyClick(widget, Qt::Key(key), Qt::KeyboardModifiers(modifiers), delay); + QTest::keyClick(window, Qt::Key(key), Qt::KeyboardModifiers(modifiers), delay); return true; } @@ -97,11 +97,11 @@ namespace QtQuickTest { enum MouseAction { MousePress, MouseRelease, MouseClick, MouseDoubleClick, MouseMove }; - static void mouseEvent(MouseAction action, QWidget *widget, + static void mouseEvent(MouseAction action, QWindow *window, QObject *item, Qt::MouseButton button, Qt::KeyboardModifiers stateKey, QPointF _pos, int delay=-1) { - QTEST_ASSERT(widget); + QTEST_ASSERT(window); QTEST_ASSERT(item); if (delay == -1 || delay < QTest::defaultMouseDelay()) @@ -110,14 +110,14 @@ namespace QtQuickTest QTest::qWait(delay); if (action == MouseClick) { - mouseEvent(MousePress, widget, item, button, stateKey, _pos); - mouseEvent(MouseRelease, widget, item, button, stateKey, _pos); + mouseEvent(MousePress, window, item, button, stateKey, _pos); + mouseEvent(MouseRelease, window, item, button, stateKey, _pos); return; } QPoint pos; - QDeclarativeView *view = qobject_cast<QDeclarativeView *>(widget); - QWidget *eventWidget = widget; + QDeclarativeView *view = qobject_cast<QDeclarativeView *>(window); + QWindow *eventWindow = window; #ifdef QUICK_TEST_SCENEGRAPH QSGItem *sgitem = qobject_cast<QSGItem *>(item); if (sgitem) { @@ -131,7 +131,7 @@ namespace QtQuickTest return; } pos = view->mapFromScene(ditem->mapToScene(_pos)); - eventWidget = view->viewport(); + eventWindow = view->viewport()->windowHandle(); } QTEST_ASSERT(button == Qt::NoButton || button & Qt::MouseButtonMask); @@ -143,26 +143,26 @@ namespace QtQuickTest switch (action) { case MousePress: - me = QMouseEvent(QEvent::MouseButtonPress, pos, widget->mapToGlobal(pos), button, button, stateKey); + me = QMouseEvent(QEvent::MouseButtonPress, pos, window->mapToGlobal(pos), button, button, stateKey); break; case MouseRelease: - me = QMouseEvent(QEvent::MouseButtonRelease, pos, widget->mapToGlobal(pos), button, 0, stateKey); + me = QMouseEvent(QEvent::MouseButtonRelease, pos, window->mapToGlobal(pos), button, 0, stateKey); break; case MouseDoubleClick: - me = QMouseEvent(QEvent::MouseButtonDblClick, pos, widget->mapToGlobal(pos), button, button, stateKey); + me = QMouseEvent(QEvent::MouseButtonDblClick, pos, window->mapToGlobal(pos), button, button, stateKey); break; case MouseMove: - QCursor::setPos(widget->mapToGlobal(pos)); + QCursor::setPos(window->mapToGlobal(pos)); qApp->processEvents(); return; default: QTEST_ASSERT(false); } QSpontaneKeyEvent::setSpontaneous(&me); - if (!qApp->notify(eventWidget, &me)) { + if (!qApp->notify(eventWindow, &me)) { static const char *mouseActionNames[] = { "MousePress", "MouseRelease", "MouseClick", "MouseDoubleClick", "MouseMove" }; - QString warning = QString::fromLatin1("Mouse event \"%1\" not accepted by receiving widget"); + QString warning = QString::fromLatin1("Mouse event \"%1\" not accepted by receiving window"); QTest::qWarn(warning.arg(QString::fromLatin1(mouseActionNames[static_cast<int>(action)])).toAscii().data()); } } @@ -172,7 +172,7 @@ bool QuickTestEvent::mousePress (QObject *item, qreal x, qreal y, int button, int modifiers, int delay) { - QWidget *view = eventWidget(); + QWindow *view = eventWindow(); if (!view) return false; QtQuickTest::mouseEvent(QtQuickTest::MousePress, view, item, @@ -186,7 +186,7 @@ bool QuickTestEvent::mouseRelease (QObject *item, qreal x, qreal y, int button, int modifiers, int delay) { - QWidget *view = eventWidget(); + QWindow *view = eventWindow(); if (!view) return false; QtQuickTest::mouseEvent(QtQuickTest::MouseRelease, view, item, @@ -200,7 +200,7 @@ bool QuickTestEvent::mouseClick (QObject *item, qreal x, qreal y, int button, int modifiers, int delay) { - QWidget *view = eventWidget(); + QWindow *view = eventWindow(); if (!view) return false; QtQuickTest::mouseEvent(QtQuickTest::MouseClick, view, item, @@ -214,7 +214,7 @@ bool QuickTestEvent::mouseDoubleClick (QObject *item, qreal x, qreal y, int button, int modifiers, int delay) { - QWidget *view = eventWidget(); + QWindow *view = eventWindow(); if (!view) return false; QtQuickTest::mouseEvent(QtQuickTest::MouseDoubleClick, view, item, @@ -227,7 +227,7 @@ bool QuickTestEvent::mouseDoubleClick bool QuickTestEvent::mouseMove (QObject *item, qreal x, qreal y, int delay) { - QWidget *view = eventWidget(); + QWindow *view = eventWindow(); if (!view) return false; QtQuickTest::mouseEvent(QtQuickTest::MouseMove, view, item, @@ -236,7 +236,7 @@ bool QuickTestEvent::mouseMove return true; } -QWidget *QuickTestEvent::eventWidget() +QWindow *QuickTestEvent::eventWindow() { #ifdef QUICK_TEST_SCENEGRAPH QSGItem *sgitem = qobject_cast<QSGItem *>(parent()); @@ -252,7 +252,7 @@ QWidget *QuickTestEvent::eventWidget() QList<QGraphicsView *> views = s->views(); if (views.isEmpty()) return 0; - return views.at(0); + return views.at(0)->windowHandle(); } QT_END_NAMESPACE diff --git a/src/qmltest/quicktestevent_p.h b/src/qmltest/quicktestevent_p.h index b2f39e90e6..d9439a6bc3 100644 --- a/src/qmltest/quicktestevent_p.h +++ b/src/qmltest/quicktestevent_p.h @@ -44,7 +44,7 @@ #include <QtQuickTest/quicktestglobal.h> #include <QtCore/qobject.h> - +#include <QtGui/QWindow> QT_BEGIN_NAMESPACE class Q_QUICK_TEST_EXPORT QuickTestEvent : public QObject @@ -70,7 +70,7 @@ public Q_SLOTS: bool mouseMove(QObject *item, qreal x, qreal y, int delay); private: - QWidget *eventWidget(); + QWindow *eventWindow(); }; QT_END_NAMESPACE |