diff options
author | Liang Qi <liang.qi@digia.com> | 2013-11-21 11:06:24 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-11-22 10:08:56 +0100 |
commit | 802921d40b8b48239958c6035c74d986fe606860 (patch) | |
tree | 1cedbc16bf2c9217d60129dd77af62b2d4410abc /tests/auto | |
parent | 88262738a8109f393f5e34d5898d1610d490e6f6 (diff) |
TextInput: add editingFinished signal
Autotest is included.
Task-number: QTBUG-34780
[ChangeLog][QtDeclarative][TextInput] add editingFinished signal
Change-Id: Ib633daee67cd4e5f15739a6004adbe882ab3d3fc
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Reviewed-by: Alan Alpert (Personal) <416365416c@gmail.com>
Diffstat (limited to 'tests/auto')
-rw-r--r-- | tests/auto/quick/qquicktextinput/data/signal_editingfinished.qml | 13 | ||||
-rw-r--r-- | tests/auto/quick/qquicktextinput/tst_qquicktextinput.cpp | 45 |
2 files changed, 58 insertions, 0 deletions
diff --git a/tests/auto/quick/qquicktextinput/data/signal_editingfinished.qml b/tests/auto/quick/qquicktextinput/data/signal_editingfinished.qml new file mode 100644 index 0000000000..2ec5ce6676 --- /dev/null +++ b/tests/auto/quick/qquicktextinput/data/signal_editingfinished.qml @@ -0,0 +1,13 @@ +import QtQuick 2.2 + +Item { + property variant input1: input1 + property variant input2: input2 + + width: 800; height: 600; + + Column{ + TextInput { id: input1; } + TextInput { id: input2; } + } +} diff --git a/tests/auto/quick/qquicktextinput/tst_qquicktextinput.cpp b/tests/auto/quick/qquicktextinput/tst_qquicktextinput.cpp index 1c2ab4d948..80726720e4 100644 --- a/tests/auto/quick/qquicktextinput/tst_qquicktextinput.cpp +++ b/tests/auto/quick/qquicktextinput/tst_qquicktextinput.cpp @@ -146,6 +146,8 @@ private slots: void validators(); void inputMethods(); + void signal_editingfinished(); + void passwordCharacter(); void cursorDelegate_data(); void cursorDelegate(); @@ -2303,6 +2305,49 @@ void tst_qquicktextinput::inputMethods() QCOMPARE(enabledQueryEvent.value(Qt::ImEnabled).toBool(), false); } +void tst_qquicktextinput::signal_editingfinished() +{ + QQuickView window(testFileUrl("signal_editingfinished.qml")); + window.show(); + window.requestActivate(); + QTest::qWaitForWindowActive(&window); + + QVERIFY(window.rootObject() != 0); + + QQuickTextInput *input1 = qobject_cast<QQuickTextInput *>(qvariant_cast<QObject *>(window.rootObject()->property("input1"))); + QVERIFY(input1); + QQuickTextInput *input2 = qobject_cast<QQuickTextInput *>(qvariant_cast<QObject *>(window.rootObject()->property("input2"))); + QVERIFY(input2); + QSignalSpy input1Spy(input1, SIGNAL(editingFinished())); + + input1->setFocus(true); + QTRY_VERIFY(input1->hasActiveFocus()); + QTRY_VERIFY(!input2->hasActiveFocus()); + + QTest::keyPress(&window, Qt::Key_A); + QTest::keyRelease(&window, Qt::Key_A, Qt::NoModifier); + QTRY_COMPARE(input1->text(), QLatin1String("a")); + + QTest::keyPress(&window, Qt::Key_Enter); + QTest::keyRelease(&window, Qt::Key_Enter, Qt::NoModifier); + QTRY_COMPARE(input1Spy.count(), 1); + + QSignalSpy input2Spy(input2, SIGNAL(editingFinished())); + + input2->setFocus(true); + QTRY_VERIFY(!input1->hasActiveFocus()); + QTRY_VERIFY(input2->hasActiveFocus()); + + QTest::keyPress(&window, Qt::Key_A); + QTest::keyRelease(&window, Qt::Key_A, Qt::NoModifier); + QTRY_COMPARE(input2->text(), QLatin1String("a")); + + input1->setFocus(true); + QTRY_VERIFY(input1->hasActiveFocus()); + QTRY_VERIFY(!input2->hasActiveFocus()); + QTRY_COMPARE(input2Spy.count(), 1); +} + /* TextInput element should only handle left/right keys until the cursor reaches the extent of the text, then they should ignore the keys. |