diff options
author | Oto Magaldadze <omagaldadze@gmail.com> | 2012-12-31 14:11:25 +0400 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-20 23:45:06 +0200 |
commit | 6b95130faa31307579cb3711cab2101d07d20823 (patch) | |
tree | e67c0d181eaf5ea8545417039c049e088b9ba0f6 /tests | |
parent | ef5455429f30ec9c8236e5240ed8f96af6ca9271 (diff) |
QCompleter::setFilterMode() add property filterMode.
QCompleter::setFilterMode(Qt::MatchContains) will enable filtering
out entries that contain typed characters in any place, instead of the
default behavior when only those entries that start with typed characters
are displayed. Qt::MatchEndsWith is also possible.
QCompleter::setFilterMode(Qt::MatchStartsWith) will bring the default
behavior back.
Task-number: QTBUG-3414
Change-Id: I3845704c59eb8fc401e9a650c54a9c934ed28c2e
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/widgets/util/qcompleter/tst_qcompleter.cpp | 129 |
1 files changed, 129 insertions, 0 deletions
diff --git a/tests/auto/widgets/util/qcompleter/tst_qcompleter.cpp b/tests/auto/widgets/util/qcompleter/tst_qcompleter.cpp index 3a6fca7146..4ba4cffb78 100644 --- a/tests/auto/widgets/util/qcompleter/tst_qcompleter.cpp +++ b/tests/auto/widgets/util/qcompleter/tst_qcompleter.cpp @@ -1418,6 +1418,135 @@ void tst_QCompleter::task253125_lineEditCompletion() QCOMPARE(edit.text(), QString("iota")); + edit.clear(); + completer->setCompletionMode(QCompleter::PopupCompletion); + completer->setFilterMode(Qt::MatchContains); + + QTest::keyClick(&edit, 't'); + QCOMPARE(edit.completer()->currentCompletion(), QString("beta")); + QTest::keyClick(edit.completer()->popup(), Qt::Key_Down); + QTest::keyClick(edit.completer()->popup(), Qt::Key_Enter); + + QCOMPARE(edit.text(), QString("beta")); + + edit.clear(); + + QTest::keyClick(&edit, 'p'); + QTest::keyClick(&edit, 'p'); + QCOMPARE(edit.completer()->currentCompletion(), QString("kappa")); + QTest::keyClick(edit.completer()->popup(), Qt::Key_Down); + QTest::keyClick(edit.completer()->popup(), Qt::Key_Enter); + + QCOMPARE(edit.text(), QString("kappa")); + + edit.clear(); + completer->setFilterMode(Qt::MatchStartsWith); + + QTest::keyClick(&edit, 't'); + QCOMPARE(edit.completer()->currentCompletion(), QString("theta")); + QTest::keyClick(edit.completer()->popup(), Qt::Key_Down); + QTest::keyClick(edit.completer()->popup(), Qt::Key_Enter); + + QCOMPARE(edit.text(), QString("theta")); + + edit.clear(); + + QTest::keyClick(&edit, 'p'); + QTest::keyClick(&edit, 'p'); + QCOMPARE(edit.completer()->currentCompletion(), QString()); + QTest::keyClick(edit.completer()->popup(), Qt::Key_Down); + QTest::keyClick(edit.completer()->popup(), Qt::Key_Enter); + + QCOMPARE(edit.text(), QString("pp")); + + edit.clear(); + + QTest::keyClick(&edit, 'u'); + QTest::keyClick(&edit, 'p'); + QTest::keyClick(&edit, 's'); + QCOMPARE(edit.completer()->currentCompletion(), QString("upsilon")); + QTest::keyClick(edit.completer()->popup(), Qt::Key_Down); + QTest::keyClick(edit.completer()->popup(), Qt::Key_Enter); + + QCOMPARE(edit.text(), QString("upsilon")); + + edit.clear(); + completer->setFilterMode(Qt::MatchEndsWith); + + QTest::keyClick(&edit, 'm'); + QTest::keyClick(&edit, 'm'); + QTest::keyClick(&edit, 'a'); + QCOMPARE(edit.completer()->currentCompletion(), QString("gamma")); + QTest::keyClick(edit.completer()->popup(), Qt::Key_Down); + QTest::keyClick(edit.completer()->popup(), Qt::Key_Enter); + + QCOMPARE(edit.text(), QString("gamma")); + + edit.clear(); + + QTest::keyClick(&edit, 'g'); + QTest::keyClick(&edit, 'm'); + QTest::keyClick(&edit, 'a'); + QCOMPARE(edit.completer()->currentCompletion(), QString("sigma")); + QTest::keyClick(edit.completer()->popup(), Qt::Key_Down); + QTest::keyClick(edit.completer()->popup(), Qt::Key_Enter); + + QCOMPARE(edit.text(), QString("sigma")); + + edit.clear(); + + QTest::keyClick(&edit, 'm'); + QTest::keyClick(&edit, 'm'); + QCOMPARE(edit.completer()->currentCompletion(), QString()); + QTest::keyClick(edit.completer()->popup(), Qt::Key_Down); + QTest::keyClick(edit.completer()->popup(), Qt::Key_Enter); + + QCOMPARE(edit.text(), QString("mm")); + + edit.clear(); + completer->setFilterMode(Qt::MatchStartsWith); + + QTest::keyClick(&edit, 'z'); + QTest::keyClick(&edit, 'e'); + QCOMPARE(edit.completer()->currentCompletion(), QString("zeta")); + QTest::keyClick(edit.completer()->popup(), Qt::Key_Down); + QTest::keyClick(edit.completer()->popup(), Qt::Key_Enter); + + QCOMPARE(edit.text(), QString("zeta")); + + edit.clear(); + completer->setFilterMode(Qt::MatchEndsWith); + + QTest::keyClick(&edit, 'e'); + QTest::keyClick(&edit, 'g'); + QTest::keyClick(&edit, 'a'); + QCOMPARE(edit.completer()->currentCompletion(), QString("omega")); + QTest::keyClick(edit.completer()->popup(), Qt::Key_Down); + QTest::keyClick(edit.completer()->popup(), Qt::Key_Enter); + + QCOMPARE(edit.text(), QString("omega")); + + edit.clear(); + completer->setFilterMode(Qt::MatchContains); + + QTest::keyClick(&edit, 'c'); + QTest::keyClick(&edit, 'r'); + QCOMPARE(edit.completer()->currentCompletion(), QString("omicron")); + QTest::keyClick(edit.completer()->popup(), Qt::Key_Down); + QTest::keyClick(edit.completer()->popup(), Qt::Key_Enter); + + QCOMPARE(edit.text(), QString("omicron")); + + edit.clear(); + + QTest::keyClick(&edit, 'z'); + QTest::keyClick(&edit, 'z'); + QCOMPARE(edit.completer()->currentCompletion(), QString()); + QTest::keyClick(edit.completer()->popup(), Qt::Key_Down); + QTest::keyClick(edit.completer()->popup(), Qt::Key_Enter); + + QCOMPARE(edit.text(), QString("zz")); + delete completer; delete model; } |