diff --git a/src/testlib/qsignalspy.h b/src/testlib/qsignalspy.h index cfde89a..1751220 100644 --- a/src/testlib/qsignalspy.h +++ b/src/testlib/qsignalspy.h @@ -82,7 +82,7 @@ public: } if (!QMetaObject::connect(obj, sigIndex, this, memberOffset, - Qt::DirectConnection, 0)) { + Qt::DirectConnection, Q_NULLPTR)) { qWarning("QSignalSpy: QMetaObject::connect returned false. Unable to connect."); return; } diff --git a/src/testlib/qtest.h b/src/testlib/qtest.h index 9941799..8da16af 100644 --- a/src/testlib/qtest.h +++ b/src/testlib/qtest.h @@ -51,6 +51,9 @@ #include <QtCore/qsize.h> #include <QtCore/qrect.h> +#ifdef QT_NETWORK_LIB +# include <QtNetwork/qhostaddress.h> +#endif QT_BEGIN_NAMESPACE @@ -162,6 +165,23 @@ template<> inline char *toString(const QVariant &v) return qstrdup(vstring.constData()); } +#ifdef QT_NETWORK_LIB +template<> inline char *toString(const QHostAddress &addr) +{ + switch (addr.protocol()) { + case QAbstractSocket::UnknownNetworkLayerProtocol: + return qstrdup("<unknown address (parse error)>"); + case QAbstractSocket::AnyIPProtocol: + return qstrdup("QHostAddress::Any"); + case QAbstractSocket::IPv4Protocol: + case QAbstractSocket::IPv6Protocol: + break; + } + + return qstrdup(addr.toString().toLatin1().constData()); +} +#endif + template<> inline bool qCompare(QString const &t1, QLatin1String const &t2, const char *actual, const char *expected, const char *file, int line) @@ -205,7 +225,7 @@ inline bool qCompare(QList<T> const &t1, QList<T> const &t2, const char *actual, delete [] val2; } } - return compare_helper(isOk, msg, 0, 0, actual, expected, file, line); + return compare_helper(isOk, msg, Q_NULLPTR, Q_NULLPTR, actual, expected, file, line); } template <> diff --git a/src/testlib/qtest_gui.h b/src/testlib/qtest_gui.h index a474758..beae9ec 100644 --- a/src/testlib/qtest_gui.h +++ b/src/testlib/qtest_gui.h @@ -86,24 +86,24 @@ inline bool qCompare(QImage const &t1, QImage const &t2, qsnprintf(msg, 1024, "Compared QImages differ.\n" " Actual (%s).isNull(): %d\n" " Expected (%s).isNull(): %d", actual, t1Null, expected, t2Null); - return compare_helper(false, msg, 0, 0, actual, expected, file, line); + return compare_helper(false, msg, Q_NULLPTR, Q_NULLPTR, actual, expected, file, line); } if (t1Null && t2Null) - return compare_helper(true, 0, 0, 0, actual, expected, file, line); + return compare_helper(true, Q_NULLPTR, Q_NULLPTR, Q_NULLPTR, actual, expected, file, line); if (t1.width() != t2.width() || t1.height() != t2.height()) { qsnprintf(msg, 1024, "Compared QImages differ in size.\n" " Actual (%s): %dx%d\n" " Expected (%s): %dx%d", actual, t1.width(), t1.height(), expected, t2.width(), t2.height()); - return compare_helper(false, msg, 0, 0, actual, expected, file, line); + return compare_helper(false, msg, Q_NULLPTR, Q_NULLPTR, actual, expected, file, line); } if (t1.format() != t2.format()) { qsnprintf(msg, 1024, "Compared QImages differ in format.\n" " Actual (%s): %d\n" " Expected (%s): %d", actual, t1.format(), expected, t2.format()); - return compare_helper(false, msg, 0, 0, actual, expected, file, line); + return compare_helper(false, msg, Q_NULLPTR, Q_NULLPTR, actual, expected, file, line); } return compare_helper(t1 == t2, "Compared values are not the same", toString(t1), toString(t2), actual, expected, file, line); @@ -120,17 +120,17 @@ inline bool qCompare(QPixmap const &t1, QPixmap const &t2, const char *actual, c qsnprintf(msg, 1024, "Compared QPixmaps differ.\n" " Actual (%s).isNull(): %d\n" " Expected (%s).isNull(): %d", actual, t1Null, expected, t2Null); - return compare_helper(false, msg, 0, 0, actual, expected, file, line); + return compare_helper(false, msg, Q_NULLPTR, Q_NULLPTR, actual, expected, file, line); } if (t1Null && t2Null) - return compare_helper(true, 0, 0, 0, actual, expected, file, line); + return compare_helper(true, Q_NULLPTR, Q_NULLPTR, Q_NULLPTR, actual, expected, file, line); if (t1.width() != t2.width() || t1.height() != t2.height()) { qsnprintf(msg, 1024, "Compared QPixmaps differ in size.\n" " Actual (%s): %dx%d\n" " Expected (%s): %dx%d", actual, t1.width(), t1.height(), expected, t2.width(), t2.height()); - return compare_helper(false, msg, 0, 0, actual, expected, file, line); + return compare_helper(false, msg, Q_NULLPTR, Q_NULLPTR, actual, expected, file, line); } return qCompare(t1.toImage(), t2.toImage(), actual, expected, file, line); } diff --git a/src/testlib/qtestaccessible.h b/src/testlib/qtestaccessible.h index f1ac625..628145f 100644 --- a/src/testlib/qtestaccessible.h +++ b/src/testlib/qtestaccessible.h @@ -126,7 +126,7 @@ public: static void cleanup() { delete instance(); - instance() = 0; + instance() = Q_NULLPTR; } static void clearEvents() { eventList().clear(); } static EventList events() { return eventList(); } @@ -162,8 +162,8 @@ private: ~QTestAccessibility() { - QAccessible::installUpdateHandler(0); - QAccessible::installRootObjectHandler(0); + QAccessible::installUpdateHandler(Q_NULLPTR); + QAccessible::installRootObjectHandler(Q_NULLPTR); } static void rootObjectHandler(QObject *object) @@ -268,7 +268,7 @@ private: static QTestAccessibility *&instance() { - static QTestAccessibility *ta = 0; + static QTestAccessibility *ta = Q_NULLPTR; return ta; } diff --git a/src/testlib/qtestcase.h b/src/testlib/qtestcase.h index f24283b..7d2fd2e 100644 --- a/src/testlib/qtestcase.h +++ b/src/testlib/qtestcase.h @@ -39,6 +39,7 @@ #include <QtCore/qstring.h> #include <QtCore/qnamespace.h> #include <QtCore/qmetatype.h> +#include <QtCore/qmetaobject.h> #include <QtCore/qtypetraits.h> #include <QtCore/qsharedpointer.h> #include <QtCore/qtemporarydir.h> @@ -157,6 +158,15 @@ do { \ #define QTRY_VERIFY(__expr) QTRY_VERIFY_WITH_TIMEOUT((__expr), 5000) +// Will try to wait for the expression to become true while allowing event processing +#define QTRY_VERIFY2_WITH_TIMEOUT(__expr, __messageExpression, __timeout) \ +do { \ + QTRY_IMPL((__expr), __timeout);\ + QVERIFY2(__expr, __messageExpression); \ +} while (0) + +#define QTRY_VERIFY2(__expr, __messageExpression) QTRY_VERIFY2_WITH_TIMEOUT((__expr), (__messageExpression), 5000) + // Will try to wait for the comparison to become successful while allowing event processing #define QTRY_COMPARE_WITH_TIMEOUT(__expr, __expected, __timeout) \ do { \ @@ -222,12 +232,28 @@ class QTestData; namespace QTest { - template <typename T> - inline char *toString(const T &) + namespace Internal { + + template<typename T> // Output registered enums + inline typename QtPrivate::QEnableIf<QtPrivate::IsQEnumHelper<T>::Value, char*>::Type toString(T e) { - return 0; + QMetaEnum me = QMetaEnum::fromType<T>(); + return qstrdup(me.key(e)); } + template <typename T> // Fallback + inline typename QtPrivate::QEnableIf<!QtPrivate::IsQEnumHelper<T>::Value, char*>::Type toString(const T &) + { + return Q_NULLPTR; + } + + } // namespace Internal + + template<typename T> + inline char *toString(const T &t) + { + return Internal::toString(t); + } Q_TESTLIB_EXPORT char *toHexRepresentation(const char *ba, int length); Q_TESTLIB_EXPORT char *toPrettyCString(const char *unicode, int length); @@ -235,10 +261,10 @@ namespace QTest Q_TESTLIB_EXPORT char *toString(const char *); Q_TESTLIB_EXPORT char *toString(const void *); - Q_TESTLIB_EXPORT int qExec(QObject *testObject, int argc = 0, char **argv = 0); + Q_TESTLIB_EXPORT int qExec(QObject *testObject, int argc = 0, char **argv = Q_NULLPTR); Q_TESTLIB_EXPORT int qExec(QObject *testObject, const QStringList &arguments); - Q_TESTLIB_EXPORT void setMainSourcePath(const char *file, const char *builddir = 0); + Q_TESTLIB_EXPORT void setMainSourcePath(const char *file, const char *builddir = Q_NULLPTR); Q_TESTLIB_EXPORT bool qVerify(bool statement, const char *statementStr, const char *description, const char *file, int line); @@ -246,15 +272,15 @@ namespace QTest Q_TESTLIB_EXPORT void qSkip(const char *message, const char *file, int line); Q_TESTLIB_EXPORT bool qExpectFail(const char *dataIndex, const char *comment, TestFailMode mode, const char *file, int line); - Q_TESTLIB_EXPORT void qWarn(const char *message, const char *file = 0, int line = 0); + Q_TESTLIB_EXPORT void qWarn(const char *message, const char *file = Q_NULLPTR, int line = 0); Q_TESTLIB_EXPORT void ignoreMessage(QtMsgType type, const char *message); #ifndef QT_NO_REGULAREXPRESSION Q_TESTLIB_EXPORT void ignoreMessage(QtMsgType type, const QRegularExpression &messagePattern); #endif Q_TESTLIB_EXPORT QSharedPointer<QTemporaryDir> qExtractTestData(const QString &dirName); - Q_TESTLIB_EXPORT QString qFindTestData(const char* basepath, const char* file = 0, int line = 0, const char* builddir = 0); - Q_TESTLIB_EXPORT QString qFindTestData(const QString& basepath, const char* file = 0, int line = 0, const char* builddir = 0); + Q_TESTLIB_EXPORT QString qFindTestData(const char* basepath, const char* file = Q_NULLPTR, int line = 0, const char* builddir = Q_NULLPTR); + Q_TESTLIB_EXPORT QString qFindTestData(const QString& basepath, const char* file = Q_NULLPTR, int line = 0, const char* builddir = Q_NULLPTR); Q_TESTLIB_EXPORT void *qData(const char *tagName, int typeId); Q_TESTLIB_EXPORT void *qGlobalData(const char *tagName, int typeId); @@ -323,6 +349,8 @@ namespace QTest QTEST_COMPARE_DECL(float) QTEST_COMPARE_DECL(double) QTEST_COMPARE_DECL(char) + QTEST_COMPARE_DECL(signed char) + QTEST_COMPARE_DECL(unsigned char) QTEST_COMPARE_DECL(bool) #endif @@ -392,14 +420,6 @@ namespace QTest return compare_string_helper(t1, t2, actual, expected, file, line); } - // NokiaX86 and RVCT do not like implicitly comparing bool with int - inline bool qCompare(bool const &t1, int const &t2, - const char *actual, const char *expected, const char *file, int line) - { - return qCompare(int(t1), t2, actual, expected, file, line); - } - - template <class T> inline bool qTest(const T& actual, const char *elementName, const char *actualStr, const char *expected, const char *file, int line) diff --git a/src/testlib/qtestevent.h b/src/testlib/qtestevent.h index a3e5f02..9794b15 100644 --- a/src/testlib/qtestevent.h +++ b/src/testlib/qtestevent.h @@ -185,20 +185,20 @@ public: inline void addKeyEvent(QTest::KeyAction action, char ascii, Qt::KeyboardModifiers modifiers = Qt::NoModifier, int msecs = -1) { append(new QTestKeyEvent(action, ascii, modifiers, msecs)); } - inline void addMousePress(Qt::MouseButton button, Qt::KeyboardModifiers stateKey = 0, + inline void addMousePress(Qt::MouseButton button, Qt::KeyboardModifiers stateKey = Qt::KeyboardModifiers(), QPoint pos = QPoint(), int delay=-1) { append(new QTestMouseEvent(QTest::MousePress, button, stateKey, pos, delay)); } - inline void addMouseRelease(Qt::MouseButton button, Qt::KeyboardModifiers stateKey = 0, + inline void addMouseRelease(Qt::MouseButton button, Qt::KeyboardModifiers stateKey = Qt::KeyboardModifiers(), QPoint pos = QPoint(), int delay=-1) { append(new QTestMouseEvent(QTest::MouseRelease, button, stateKey, pos, delay)); } - inline void addMouseClick(Qt::MouseButton button, Qt::KeyboardModifiers stateKey = 0, + inline void addMouseClick(Qt::MouseButton button, Qt::KeyboardModifiers stateKey = Qt::KeyboardModifiers(), QPoint pos = QPoint(), int delay=-1) { append(new QTestMouseEvent(QTest::MouseClick, button, stateKey, pos, delay)); } - inline void addMouseDClick(Qt::MouseButton button, Qt::KeyboardModifiers stateKey = 0, + inline void addMouseDClick(Qt::MouseButton button, Qt::KeyboardModifiers stateKey = Qt::KeyboardModifiers(), QPoint pos = QPoint(), int delay=-1) { append(new QTestMouseEvent(QTest::MouseDClick, button, stateKey, pos, delay)); } inline void addMouseMove(QPoint pos = QPoint(), int delay=-1) - { append(new QTestMouseEvent(QTest::MouseMove, Qt::NoButton, 0, pos, delay)); } + { append(new QTestMouseEvent(QTest::MouseMove, Qt::NoButton, Qt::KeyboardModifiers(), pos, delay)); } #endif //QT_GUI_LIB inline void addDelay(int msecs) diff --git a/src/testlib/qtesteventloop.h b/src/testlib/qtesteventloop.h index a9f611f..a8ce619 100644 --- a/src/testlib/qtesteventloop.h +++ b/src/testlib/qtesteventloop.h @@ -50,8 +50,8 @@ class Q_TESTLIB_EXPORT QTestEventLoop : public QObject Q_OBJECT public: - inline QTestEventLoop(QObject *aParent = 0) - : QObject(aParent), inLoop(false), _timeout(false), timerId(-1), loop(0) {} + inline QTestEventLoop(QObject *aParent = Q_NULLPTR) + : QObject(aParent), inLoop(false), _timeout(false), timerId(-1), loop(Q_NULLPTR) {} inline void enterLoopMSecs(int ms); inline void enterLoop(int secs) { enterLoopMSecs(secs * 1000); } @@ -97,7 +97,7 @@ inline void QTestEventLoop::enterLoopMSecs(int ms) loop = &l; l.exec(); - loop = 0; + loop = Q_NULLPTR; } inline void QTestEventLoop::exitLoop() diff --git a/src/testlib/qtestkeyboard.h b/src/testlib/qtestkeyboard.h index 39520d6..d73658d 100644 --- a/src/testlib/qtestkeyboard.h +++ b/src/testlib/qtestkeyboard.h @@ -61,7 +61,7 @@ Q_GUI_EXPORT bool qt_sendShortcutOverrideEvent(QObject *o, ulong timestamp, int namespace QTest { - enum KeyAction { Press, Release, Click }; + enum KeyAction { Press, Release, Click, Shortcut }; static void simulateEvent(QWindow *window, bool press, int code, Qt::KeyboardModifiers modifier, QString text, bool repeat, int delay=-1) @@ -95,9 +95,15 @@ namespace QTest bool repeat = false; + if (action == Shortcut) { + int timestamp = 0; + qt_sendShortcutOverrideEvent(window, timestamp, code, modifier, text, repeat); + return; + } + if (action == Press) { if (modifier & Qt::ShiftModifier) - simulateEvent(window, true, Qt::Key_Shift, 0, QString(), false, delay); + simulateEvent(window, true, Qt::Key_Shift, Qt::KeyboardModifiers(), QString(), false, delay); if (modifier & Qt::ControlModifier) simulateEvent(window, true, Qt::Key_Control, modifier & Qt::ShiftModifier, QString(), false, delay); @@ -220,7 +226,7 @@ namespace QTest if (action == Press) { if (modifier & Qt::ShiftModifier) - simulateEvent(widget, true, Qt::Key_Shift, 0, QString(), false, delay); + simulateEvent(widget, true, Qt::Key_Shift, Qt::KeyboardModifiers(), QString(), false, delay); if (modifier & Qt::ControlModifier) simulateEvent(widget, true, Qt::Key_Control, modifier & Qt::ShiftModifier, QString(), false, delay); diff --git a/src/testlib/qtestmouse.h b/src/testlib/qtestmouse.h index ad6671a..c422a99 100644 --- a/src/testlib/qtestmouse.h +++ b/src/testlib/qtestmouse.h @@ -45,6 +45,7 @@ #include <QtTest/qtestspontaneevent.h> #include <QtCore/qpoint.h> #include <QtCore/qstring.h> +#include <QtCore/qpointer.h> #include <QtGui/qevent.h> #include <QtGui/qwindow.h> @@ -57,12 +58,15 @@ QT_BEGIN_NAMESPACE -Q_GUI_EXPORT void qt_handleMouseEvent(QWindow *w, const QPointF & local, const QPointF & global, Qt::MouseButtons b, Qt::KeyboardModifiers mods = Qt::NoModifier); +Q_GUI_EXPORT void qt_handleMouseEvent(QWindow *w, const QPointF &local, const QPointF &global, Qt::MouseButtons b, Qt::KeyboardModifiers mods, int timestamp); namespace QTest { enum MouseAction { MousePress, MouseRelease, MouseClick, MouseDClick, MouseMove }; + extern Q_TESTLIB_EXPORT Qt::MouseButton lastMouseButton; + extern Q_TESTLIB_EXPORT int lastMouseTimestamp; + static void waitForEvents() { #ifdef Q_OS_MAC @@ -83,47 +87,43 @@ namespace QTest QTest::qWarn("Mouse event occurs outside of target window."); } - static Qt::MouseButton lastButton = Qt::NoButton; - if (delay == -1 || delay < defaultMouseDelay()) delay = defaultMouseDelay(); - if (delay > 0) + if (delay > 0) { QTest::qWait(delay); + lastMouseTimestamp += delay; + } if (pos.isNull()) pos = window->geometry().center(); - if (action == MouseClick) { - mouseEvent(MousePress, window, button, stateKey, pos); - mouseEvent(MouseRelease, window, button, stateKey, pos); - return; - } QTEST_ASSERT(uint(stateKey) == 0 || stateKey & Qt::KeyboardModifierMask); stateKey &= static_cast<unsigned int>(Qt::KeyboardModifierMask); + QPointF global = window->mapToGlobal(pos); + QPointer<QWindow> w(window); switch (action) { + case MouseDClick: + qt_handleMouseEvent(w, pos, global, button, stateKey, ++lastMouseTimestamp); + qt_handleMouseEvent(w, pos, global, Qt::NoButton, stateKey, ++lastMouseTimestamp); + // fall through case MousePress: - qt_handleMouseEvent(window,pos,window->mapToGlobal(pos),button,stateKey); - lastButton = button; + case MouseClick: + qt_handleMouseEvent(w, pos, global, button, stateKey, ++lastMouseTimestamp); + lastMouseButton = button; + if (action == MousePress) break; + // fall through case MouseRelease: - qt_handleMouseEvent(window,pos,window->mapToGlobal(pos),Qt::NoButton,stateKey); - lastButton = Qt::NoButton; - break; - case MouseDClick: - qt_handleMouseEvent(window,pos,window->mapToGlobal(pos),button,stateKey); - qWait(10); - qt_handleMouseEvent(window,pos,window->mapToGlobal(pos),Qt::NoButton,stateKey); - qWait(20); - qt_handleMouseEvent(window,pos,window->mapToGlobal(pos),button,stateKey); - qWait(10); - qt_handleMouseEvent(window,pos,window->mapToGlobal(pos),Qt::NoButton,stateKey); + qt_handleMouseEvent(w, pos, global, Qt::NoButton, stateKey, ++lastMouseTimestamp); + lastMouseTimestamp += 500; // avoid double clicks being generated + lastMouseButton = Qt::NoButton; break; case MouseMove: - qt_handleMouseEvent(window,pos,window->mapToGlobal(pos),lastButton,stateKey); + qt_handleMouseEvent(w, pos, global, lastMouseButton, stateKey, ++lastMouseTimestamp); // No QCursor::setPos() call here. That could potentially result in mouse events sent by the windowing system // which is highly undesired here. Tests must avoid relying on QCursor. break; @@ -133,26 +133,39 @@ namespace QTest waitForEvents(); } - inline void mousePress(QWindow *window, Qt::MouseButton button, Qt::KeyboardModifiers stateKey = 0, + inline void mousePress(QWindow *window, Qt::MouseButton button, + Qt::KeyboardModifiers stateKey = Qt::KeyboardModifiers(), QPoint pos = QPoint(), int delay=-1) { mouseEvent(MousePress, window, button, stateKey, pos, delay); } - inline void mouseRelease(QWindow *window, Qt::MouseButton button, Qt::KeyboardModifiers stateKey = 0, + inline void mouseRelease(QWindow *window, Qt::MouseButton button, + Qt::KeyboardModifiers stateKey = Qt::KeyboardModifiers(), QPoint pos = QPoint(), int delay=-1) { mouseEvent(MouseRelease, window, button, stateKey, pos, delay); } - inline void mouseClick(QWindow *window, Qt::MouseButton button, Qt::KeyboardModifiers stateKey = 0, + inline void mouseClick(QWindow *window, Qt::MouseButton button, + Qt::KeyboardModifiers stateKey = Qt::KeyboardModifiers(), QPoint pos = QPoint(), int delay=-1) { mouseEvent(MouseClick, window, button, stateKey, pos, delay); } - inline void mouseDClick(QWindow *window, Qt::MouseButton button, Qt::KeyboardModifiers stateKey = 0, + inline void mouseDClick(QWindow *window, Qt::MouseButton button, + Qt::KeyboardModifiers stateKey = Qt::KeyboardModifiers(), QPoint pos = QPoint(), int delay=-1) { mouseEvent(MouseDClick, window, button, stateKey, pos, delay); } inline void mouseMove(QWindow *window, QPoint pos = QPoint(), int delay=-1) - { mouseEvent(MouseMove, window, Qt::NoButton, 0, pos, delay); } + { mouseEvent(MouseMove, window, Qt::NoButton, Qt::KeyboardModifiers(), pos, delay); } #ifdef QT_WIDGETS_LIB static void mouseEvent(MouseAction action, QWidget *widget, Qt::MouseButton button, Qt::KeyboardModifiers stateKey, QPoint pos, int delay=-1) { QTEST_ASSERT(widget); + + if (pos.isNull()) + pos = widget->rect().center(); + +#ifdef QTEST_QPA_MOUSE_HANDLING + QWindow *w = widget->window()->windowHandle(); + QTEST_ASSERT(w); + mouseEvent(action, w, button, stateKey, w->mapFromGlobal(widget->mapToGlobal(pos)), delay); +#else extern int Q_TESTLIB_EXPORT defaultMouseDelay(); if (delay == -1 || delay < defaultMouseDelay()) @@ -160,9 +173,6 @@ namespace QTest if (delay > 0) QTest::qWait(delay); - if (pos.isNull()) - pos = widget->rect().center(); - if (action == MouseClick) { mouseEvent(MousePress, widget, button, stateKey, pos); mouseEvent(MouseRelease, widget, button, stateKey, pos); @@ -180,7 +190,7 @@ namespace QTest me = QMouseEvent(QEvent::MouseButtonPress, pos, widget->mapToGlobal(pos), button, button, stateKey); break; case MouseRelease: - me = QMouseEvent(QEvent::MouseButtonRelease, pos, widget->mapToGlobal(pos), button, 0, stateKey); + me = QMouseEvent(QEvent::MouseButtonRelease, pos, widget->mapToGlobal(pos), button, Qt::MouseButton(), stateKey); break; case MouseDClick: me = QMouseEvent(QEvent::MouseButtonDblClick, pos, widget->mapToGlobal(pos), button, button, stateKey); @@ -203,23 +213,27 @@ namespace QTest QString warning = QString::fromLatin1("Mouse event \"%1\" not accepted by receiving widget"); QTest::qWarn(warning.arg(QString::fromLatin1(mouseActionNames[static_cast<int>(action)])).toLatin1().data()); } - +#endif } - inline void mousePress(QWidget *widget, Qt::MouseButton button, Qt::KeyboardModifiers stateKey = 0, + inline void mousePress(QWidget *widget, Qt::MouseButton button, + Qt::KeyboardModifiers stateKey = Qt::KeyboardModifiers(), QPoint pos = QPoint(), int delay=-1) { mouseEvent(MousePress, widget, button, stateKey, pos, delay); } - inline void mouseRelease(QWidget *widget, Qt::MouseButton button, Qt::KeyboardModifiers stateKey = 0, + inline void mouseRelease(QWidget *widget, Qt::MouseButton button, + Qt::KeyboardModifiers stateKey = Qt::KeyboardModifiers(), QPoint pos = QPoint(), int delay=-1) { mouseEvent(MouseRelease, widget, button, stateKey, pos, delay); } - inline void mouseClick(QWidget *widget, Qt::MouseButton button, Qt::KeyboardModifiers stateKey = 0, + inline void mouseClick(QWidget *widget, Qt::MouseButton button, + Qt::KeyboardModifiers stateKey = Qt::KeyboardModifiers(), QPoint pos = QPoint(), int delay=-1) { mouseEvent(MouseClick, widget, button, stateKey, pos, delay); } - inline void mouseDClick(QWidget *widget, Qt::MouseButton button, Qt::KeyboardModifiers stateKey = 0, + inline void mouseDClick(QWidget *widget, Qt::MouseButton button, + Qt::KeyboardModifiers stateKey = Qt::KeyboardModifiers(), QPoint pos = QPoint(), int delay=-1) { mouseEvent(MouseDClick, widget, button, stateKey, pos, delay); } inline void mouseMove(QWidget *widget, QPoint pos = QPoint(), int delay=-1) - { mouseEvent(MouseMove, widget, Qt::NoButton, 0, pos, delay); } + { mouseEvent(MouseMove, widget, Qt::NoButton, Qt::KeyboardModifiers(), pos, delay); } #endif // QT_WIDGETS_LIB } diff --git a/src/testlib/qtestsystem.h b/src/testlib/qtestsystem.h index 50acc61..f81ede5 100644 --- a/src/testlib/qtestsystem.h +++ b/src/testlib/qtestsystem.h @@ -56,7 +56,7 @@ namespace QTest timer.start(); do { QCoreApplication::processEvents(QEventLoop::AllEvents, ms); - QCoreApplication::sendPostedEvents(0, QEvent::DeferredDelete); + QCoreApplication::sendPostedEvents(Q_NULLPTR, QEvent::DeferredDelete); QTest::qSleep(10); } while (timer.elapsed() < ms); } @@ -71,7 +71,7 @@ namespace QTest if (remaining <= 0) break; QCoreApplication::processEvents(QEventLoop::AllEvents, remaining); - QCoreApplication::sendPostedEvents(0, QEvent::DeferredDelete); + QCoreApplication::sendPostedEvents(Q_NULLPTR, QEvent::DeferredDelete); QTest::qSleep(10); } // Try ensuring the platform window receives the real position. @@ -100,7 +100,7 @@ namespace QTest if (remaining <= 0) break; QCoreApplication::processEvents(QEventLoop::AllEvents, remaining); - QCoreApplication::sendPostedEvents(0, QEvent::DeferredDelete); + QCoreApplication::sendPostedEvents(Q_NULLPTR, QEvent::DeferredDelete); QTest::qSleep(10); } return window->isExposed(); diff --git a/src/testlib/qtesttouch.h b/src/testlib/qtesttouch.h index 5dcdca8..8e782d1 100644 --- a/src/testlib/qtesttouch.h +++ b/src/testlib/qtesttouch.h @@ -68,21 +68,21 @@ namespace QTest if (commitWhenDestroyed) commit(); } - QTouchEventSequence& press(int touchId, const QPoint &pt, QWindow *window = 0) + QTouchEventSequence& press(int touchId, const QPoint &pt, QWindow *window = Q_NULLPTR) { QTouchEvent::TouchPoint &p = point(touchId); p.setScreenPos(mapToScreen(window, pt)); p.setState(Qt::TouchPointPressed); return *this; } - QTouchEventSequence& move(int touchId, const QPoint &pt, QWindow *window = 0) + QTouchEventSequence& move(int touchId, const QPoint &pt, QWindow *window = Q_NULLPTR) { QTouchEvent::TouchPoint &p = point(touchId); p.setScreenPos(mapToScreen(window, pt)); p.setState(Qt::TouchPointMoved); return *this; } - QTouchEventSequence& release(int touchId, const QPoint &pt, QWindow *window = 0) + QTouchEventSequence& release(int touchId, const QPoint &pt, QWindow *window = Q_NULLPTR) { QTouchEvent::TouchPoint &p = point(touchId); p.setScreenPos(mapToScreen(window, pt)); @@ -97,21 +97,21 @@ namespace QTest } #ifdef QT_WIDGETS_LIB - QTouchEventSequence& press(int touchId, const QPoint &pt, QWidget *widget = 0) + QTouchEventSequence& press(int touchId, const QPoint &pt, QWidget *widget = Q_NULLPTR) { QTouchEvent::TouchPoint &p = point(touchId); p.setScreenPos(mapToScreen(widget, pt)); p.setState(Qt::TouchPointPressed); return *this; } - QTouchEventSequence& move(int touchId, const QPoint &pt, QWidget *widget = 0) + QTouchEventSequence& move(int touchId, const QPoint &pt, QWidget *widget = Q_NULLPTR) { QTouchEvent::TouchPoint &p = point(touchId); p.setScreenPos(mapToScreen(widget, pt)); p.setState(Qt::TouchPointMoved); return *this; } - QTouchEventSequence& release(int touchId, const QPoint &pt, QWidget *widget = 0) + QTouchEventSequence& release(int touchId, const QPoint &pt, QWidget *widget = Q_NULLPTR) { QTouchEvent::TouchPoint &p = point(touchId); p.setScreenPos(mapToScreen(widget, pt)); @@ -143,14 +143,14 @@ namespace QTest private: #ifdef QT_WIDGETS_LIB QTouchEventSequence(QWidget *widget, QTouchDevice *aDevice, bool autoCommit) - : targetWidget(widget), targetWindow(0), device(aDevice), commitWhenDestroyed(autoCommit) + : targetWidget(widget), targetWindow(Q_NULLPTR), device(aDevice), commitWhenDestroyed(autoCommit) { } #endif QTouchEventSequence(QWindow *window, QTouchDevice *aDevice, bool autoCommit) : #ifdef QT_WIDGETS_LIB - targetWidget(0), + targetWidget(Q_NULLPTR), #endif targetWindow(window), device(aDevice), commitWhenDestroyed(autoCommit) {
_______________________________________________ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development