tests/auto/qlineedit/tst_qlineedit.cpp
branchRCL_3
changeset 8 3f74d0d4af4c
parent 4 3b1da2848fc7
--- a/tests/auto/qlineedit/tst_qlineedit.cpp	Mon Mar 15 12:43:09 2010 +0200
+++ b/tests/auto/qlineedit/tst_qlineedit.cpp	Thu Apr 08 14:19:33 2010 +0300
@@ -271,6 +271,7 @@
     void taskQTBUG_4401_enterKeyClearsPassword();
     void taskQTBUG_4679_moveToStartEndOfBlock();
     void taskQTBUG_4679_selectToStartEndOfBlock();
+    void taskQTBUG_7395_readOnlyShortcut();
 
 protected slots:
 #ifdef QT3_SUPPORT
@@ -3454,10 +3455,8 @@
     completer.setCompletionMode(QCompleter::InlineCompletion);
     lineEdit.setCompleter(&completer);
     lineEdit.show();
-#ifdef Q_WS_X11
-    // to be safe and avoid failing setFocus with window managers
-    qt_x11_wait_for_window_manager(&lineEdit);
-#endif
+    QTest::qWaitForWindowShown(&lineEdit);
+    QApplication::setActiveWindow(&lineEdit);
     lineEdit.setFocus();
     QTRY_VERIFY(lineEdit.hasFocus());
     QTest::keyPress(&lineEdit, 'a');
@@ -3638,5 +3637,26 @@
 #endif // Q_OS_MAC
 }
 
+void tst_QLineEdit::taskQTBUG_7395_readOnlyShortcut()
+{
+    //ReadOnly QLineEdit should not intercept shortcut.
+    QLineEdit le;
+    le.setReadOnly(true);
+
+    QAction action(QString::fromLatin1("hello"), &le);
+    action.setShortcut(QString::fromLatin1("p"));
+    QSignalSpy spy(&action, SIGNAL(triggered()));
+    le.addAction(&action);
+
+    le.show();
+    QTest::qWaitForWindowShown(&le);
+    QApplication::setActiveWindow(&le);
+    le.setFocus();
+    QTRY_VERIFY(le.hasFocus());
+
+    QTest::keyClick(0, Qt::Key_P);
+    QCOMPARE(spy.count(), 1);
+}
+
 QTEST_MAIN(tst_QLineEdit)
 #include "tst_qlineedit.moc"