From 7323cd8dc29011dff49267bbf8f41f31eaf0a112 Mon Sep 17 00:00:00 2001 From: Liang Qi Date: Fri, 16 Jun 2017 10:54:53 +0200 Subject: testlib: add key sequence function [ChangeLog][Qt Test] Added keySequence() function. Task-number: QTBUG-53381 Change-Id: Ib7c3f966fe607f00475ae74aaf070cb988d00141 Reviewed-by: Edward Welbourne Reviewed-by: Mitch Curtis Reviewed-by: J-P Nurmi --- src/testlib/qtestkeyboard.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src/testlib/qtestkeyboard.h') diff --git a/src/testlib/qtestkeyboard.h b/src/testlib/qtestkeyboard.h index e750fdb5a9..a7cf78f25a 100644 --- a/src/testlib/qtestkeyboard.h +++ b/src/testlib/qtestkeyboard.h @@ -54,6 +54,7 @@ #include #include #include +#include #ifdef QT_WIDGETS_LIB #include @@ -165,6 +166,15 @@ namespace QTest Q_DECL_UNUSED inline static void keyPress(QWindow *window, Qt::Key key, Qt::KeyboardModifiers modifier = Qt::NoModifier, int delay=-1) { keyEvent(Press, window, key, modifier, delay); } + Q_DECL_UNUSED inline static void keySequence(QWindow *window, const QKeySequence &keySequence) + { + for (int i = 0; i < keySequence.count(); ++i) { + const Qt::Key key = Qt::Key(keySequence[i] & ~Qt::KeyboardModifierMask); + const Qt::KeyboardModifiers modifiers = Qt::KeyboardModifiers(keySequence[i] & Qt::KeyboardModifierMask); + keyClick(window, key, modifiers); + } + } + #ifdef QT_WIDGETS_LIB static void simulateEvent(QWidget *widget, bool press, int code, Qt::KeyboardModifiers modifier, QString text, bool repeat, int delay=-1) @@ -294,6 +304,16 @@ namespace QTest { keyEvent(Release, widget, key, modifier, delay); } inline static void keyClick(QWidget *widget, Qt::Key key, Qt::KeyboardModifiers modifier = Qt::NoModifier, int delay=-1) { keyEvent(Click, widget, key, modifier, delay); } + + inline static void keySequence(QWidget *widget, const QKeySequence &keySequence) + { + for (int i = 0; i < keySequence.count(); ++i) { + const Qt::Key key = Qt::Key(keySequence[i] & ~Qt::KeyboardModifierMask); + const Qt::KeyboardModifiers modifiers = Qt::KeyboardModifiers(keySequence[i] & Qt::KeyboardModifierMask); + keyClick(widget, key, modifiers); + } + } + #endif // QT_WIDGETS_LIB } -- cgit v1.2.3