summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorOto Magaldadze <omagaldadze@gmail.com>2012-12-31 14:11:25 +0400
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-20 23:45:06 +0200
commit6b95130faa31307579cb3711cab2101d07d20823 (patch)
treee67c0d181eaf5ea8545417039c049e088b9ba0f6 /tests
parentef5455429f30ec9c8236e5240ed8f96af6ca9271 (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.cpp129
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;
}