From: MSO Date: Thu Sep 7 2006 p4i integration Integrate 235404 from 4.2 to main: Fixes: Not being able to type AltGr+E etc in QLineEdit Task: 129098 RevBy: SH AutoTest: yes Details: As AltGr is in reality Ctrl+Alt on Windows, having the Ctrl blocking code in QLineEdit would stop people from entering special characters. [git-p4: depot-paths = "//depot/qt/main/": change = 235407] diff --git a/src/gui/widgets/qlineedit.cpp b/src/gui/widgets/qlineedit.cpp --- a/src/gui/widgets/qlineedit.cpp +++ b/src/gui/widgets/qlineedit.cpp @@ -1943,7 +1943,7 @@ void QLineEdit::keyPressEvent(QKeyEvent *event) unknown = false; } - if (unknown && !d->readOnly && !(event->modifiers() & Qt::ControlModifier)) { + if (unknown && !d->readOnly) { QString t = event->text(); if (!t.isEmpty() && t.at(0).isPrint()) { insert(t); diff --git a/tests/auto/qlineedit/tst_qlineedit.cpp b/tests/auto/qlineedit/tst_qlineedit.cpp --- a/tests/auto/qlineedit/tst_qlineedit.cpp +++ b/tests/auto/qlineedit/tst_qlineedit.cpp @@ -2970,7 +2970,11 @@ void tst_QLineEdit::charWithAltOrCtrlModifier() QTest::keyPress(testWidget, Qt::Key_Plus); QCOMPARE(testWidget->text(), QString("+")); QTest::keyPress(testWidget, Qt::Key_Plus, Qt::ControlModifier); - QCOMPARE(testWidget->text(), QString("+")); + QCOMPARE(testWidget->text(), QString("++")); + QTest::keyPress(testWidget, Qt::Key_Plus, Qt::AltModifier); + QCOMPARE(testWidget->text(), QString("+++")); + QTest::keyPress(testWidget, Qt::Key_Plus, Qt::AltModifier | Qt::ControlModifier); + QCOMPARE(testWidget->text(), QString("++++")); } QTEST_MAIN(tst_QLineEdit)