implement eventSender.keyDown().
authorlars <lars@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 24 Oct 2007 12:32:40 +0000 (12:32 +0000)
committerlars <lars@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 24 Oct 2007 12:32:40 +0000 (12:32 +0000)
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@26973 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebKitTools/ChangeLog
WebKitTools/DumpRenderTree/qt/jsobjects.cpp

index 3fb9d54712f065c047b3858126b6dba36c4031b9..c4408a35881f5a9a843df77cc191180f4dab2067 100644 (file)
@@ -1,3 +1,12 @@
+2007-10-24  Lars Knoll  <lars@trolltech.com>
+
+        Reviewed by Simon.
+
+        implement eventSender.keyDown().
+
+        * DumpRenderTree/qt/jsobjects.cpp:
+        (EventSender::keyDown):
+
 2007-10-24  Lars Knoll  <lars@trolltech.com>
 
         Reviewed by Simon.
index 46d1424c9e47fa5771583cde4c6e4554f1ae0dbd..3bf78f64040a2efd2c504e6f89698124c135f904 100644 (file)
@@ -203,7 +203,26 @@ void EventSender::leapForward(int ms)
 
 void EventSender::keyDown(const QString &string, const QStringList &modifiers)
 {
-    qDebug() << "EventSender::keyDown" << string << modifiers;
+    Qt::KeyboardModifiers modifs = 0;
+    for (int i = 0; i < modifiers.size(); ++i) {
+        const QString &m = modifiers.at(i);
+        if (m == "ctrlKey")
+            modifs |= Qt::ControlModifier;
+        else if (m == "shiftKey")
+            modifs |= Qt::ShiftModifier;
+        else if (m == "altKey")
+            modifs |= Qt::AltModifier;
+        else if (m == "metaKey")
+            modifs |= Qt::MetaModifier;
+    }
+    int code = 0;
+    if (string.length() == 1) {
+        code = string.unicode()->toUpper().unicode();
+        if (code == '\t')
+            code = Qt::Key_Tab;
+    }
+    QKeyEvent event(QEvent::KeyPress, code, modifs, string);
+    QApplication::sendEvent(m_page, &event);
 }
 
 QWebFrame *EventSender::frameUnderMouse() const