tests/auto/qlineedit/tst_qlineedit.cpp
changeset 18 2f34d5167611
parent 3 41300fa6a67c
child 23 89e065397ea6
--- a/tests/auto/qlineedit/tst_qlineedit.cpp	Tue Feb 02 00:43:10 2010 +0200
+++ b/tests/auto/qlineedit/tst_qlineedit.cpp	Fri Apr 16 15:50:13 2010 +0300
@@ -1,6 +1,6 @@
 /****************************************************************************
 **
-** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
 ** All rights reserved.
 ** Contact: Nokia Corporation (qt-info@nokia.com)
 **
@@ -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"