diff options
author | Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> | 2015-01-27 16:53:48 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> | 2015-02-03 06:24:11 +0000 |
commit | b85b78f17d3d18887b409a3ce9d2f2c71ae68844 (patch) | |
tree | 91e454eac7a008a30832b72d361a9c93e6842882 /tests/auto/widgets/widgets/qplaintextedit | |
parent | 912f1ebaad29e5a0b8acba48691a565ba56c6b9e (diff) |
Suppress Ctrl/Ctrl+Shift keypresses in line/text edits.
Ctrl/Ctrl+Shift should not cause any characters to be input
(as opposed to AltGr(Alt+Ctrl) as used on German keyboards).
Extend the tests in QLineEdit and QPlainTextEdit to
check the modifiers, remove test from QTextEdit
since it is handled by QWidgetTextControl.
Task-number: QTBUG-35734
Change-Id: Ie0004fac68cf840c68247f27547e84b021355cd2
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
Diffstat (limited to 'tests/auto/widgets/widgets/qplaintextedit')
-rw-r--r-- | tests/auto/widgets/widgets/qplaintextedit/tst_qplaintextedit.cpp | 33 |
1 files changed, 29 insertions, 4 deletions
diff --git a/tests/auto/widgets/widgets/qplaintextedit/tst_qplaintextedit.cpp b/tests/auto/widgets/widgets/qplaintextedit/tst_qplaintextedit.cpp index cf495e2238..390b99c6e7 100644 --- a/tests/auto/widgets/widgets/qplaintextedit/tst_qplaintextedit.cpp +++ b/tests/auto/widgets/widgets/qplaintextedit/tst_qplaintextedit.cpp @@ -99,7 +99,8 @@ private slots: #ifndef QT_NO_CLIPBOARD void copyAndSelectAllInReadonly(); #endif - void ctrlAltInput(); + void charWithAltOrCtrlModifier_data(); + void charWithAltOrCtrlModifier(); void noPropertiesOnDefaultTextEditCharFormat(); void setPlainTextShouldEmitTextChangedOnce(); void overwriteMode(); @@ -691,10 +692,34 @@ void tst_QPlainTextEdit::copyAndSelectAllInReadonly() } #endif -void tst_QPlainTextEdit::ctrlAltInput() +Q_DECLARE_METATYPE(Qt::KeyboardModifiers) + +// Test how QWidgetTextControlPrivate (used in QPlainTextEdit, QTextEdit) +// handles input with modifiers. +void tst_QPlainTextEdit::charWithAltOrCtrlModifier_data() +{ + QTest::addColumn<Qt::KeyboardModifiers>("modifiers"); + QTest::addColumn<bool>("textExpected"); + + QTest::newRow("no-modifiers") << Qt::KeyboardModifiers() << true; + // Ctrl, Ctrl+Shift: No text (QTBUG-35734) + QTest::newRow("ctrl") << Qt::KeyboardModifiers(Qt::ControlModifier) + << false; + QTest::newRow("ctrl-shift") << Qt::KeyboardModifiers(Qt::ShiftModifier | Qt::ControlModifier) + << false; + QTest::newRow("alt") << Qt::KeyboardModifiers(Qt::AltModifier) << true; + // Alt-Ctrl (Alt-Gr on German keyboards, Task 129098): Expect text + QTest::newRow("alt-ctrl") << (Qt::AltModifier | Qt::ControlModifier) << true; +} + +void tst_QPlainTextEdit::charWithAltOrCtrlModifier() { - QTest::keyClick(ed, Qt::Key_At, Qt::ControlModifier | Qt::AltModifier); - QCOMPARE(ed->toPlainText(), QString("@")); + QFETCH(Qt::KeyboardModifiers, modifiers); + QFETCH(bool, textExpected); + + QTest::keyClick(ed, Qt::Key_At, modifiers); + const QString expectedText = textExpected ? QLatin1String("@") : QString(); + QCOMPARE(ed->toPlainText(), expectedText); } void tst_QPlainTextEdit::noPropertiesOnDefaultTextEditCharFormat() |