QQuickView canvas(testFileUrl("alignments.qml"));
canvas.show();
- canvas.requestActivateWindow();
QTest::qWaitForWindowShown(&canvas);
- QTRY_COMPARE(&canvas, qGuiApp->focusWindow());
QObject *ob = canvas.rootObject();
QVERIFY(ob != 0);
QVERIFY(textEdit->positionToRectangle(0).x() < canvas.width()/2);
canvas.requestActivateWindow();
- QTest::qWaitForWindowShown(&canvas);
- QTRY_COMPARE(&canvas, qGuiApp->focusWindow());
+ QTest::qWaitForWindowActive(&canvas);
+ QVERIFY(textEdit->hasActiveFocus());
textEdit->setText(QString());
- { QInputMethodEvent ev(rtlText, QList<QInputMethodEvent::Attribute>()); QGuiApplication::sendEvent(qGuiApp->focusObject(), &ev); }
+ { QInputMethodEvent ev(rtlText, QList<QInputMethodEvent::Attribute>()); QGuiApplication::sendEvent(textEdit, &ev); }
QCOMPARE(textEdit->hAlign(), QQuickTextEdit::AlignRight);
- { QInputMethodEvent ev("Hello world!", QList<QInputMethodEvent::Attribute>()); QGuiApplication::sendEvent(qGuiApp->focusObject(), &ev); }
+ { QInputMethodEvent ev("Hello world!", QList<QInputMethodEvent::Attribute>()); QGuiApplication::sendEvent(textEdit, &ev); }
QCOMPARE(textEdit->hAlign(), QQuickTextEdit::AlignLeft);
// Clear pre-edit text. TextEdit should maybe do this itself on setText, but that may be
// redundant as an actual input method may take care of it.
- { QInputMethodEvent ev; QGuiApplication::sendEvent(qGuiApp->focusObject(), &ev); }
+ { QInputMethodEvent ev; QGuiApplication::sendEvent(textEdit, &ev); }
// empty text with implicit alignment follows the system locale-based
// keyboard input direction from qApp->inputMethod()->inputDirection
{
QQuickView view(testFileUrl("hAlignVisual.qml"));
view.show();
- view.requestActivateWindow();
QTest::qWaitForWindowShown(&view);
QQuickText *text = view.rootObject()->findChild<QQuickText*>("textItem");
QQuickView canvas(testFileUrl("persistentSelection.qml"));
canvas.show();
canvas.requestActivateWindow();
- QTest::qWaitForWindowShown(&canvas);
- QTRY_COMPARE(&canvas, qGuiApp->focusWindow());
- canvas.requestActivateWindow();
+ QTest::qWaitForWindowActive(&canvas);
QQuickTextEdit *edit = qobject_cast<QQuickTextEdit *>(canvas.rootObject());
QVERIFY(edit);
textEditObject->setParentItem(canvas.rootItem());
canvas.show();
canvas.requestActivateWindow();
- QTest::qWaitForWindowShown(&canvas);
- QTRY_COMPARE(QGuiApplication::focusWindow(), &canvas);
+ QTest::qWaitForWindowActive(&canvas);
QCOMPARE(textEditObject->hasFocus(), false);
QCOMPARE(textEditObject->hasActiveFocus(), false);
QQuickView canvas(testFileUrl("navigation.qml"));
canvas.show();
canvas.requestActivateWindow();
- QTest::qWaitForWindowShown(&canvas);
- QTRY_COMPARE(&canvas, qGuiApp->focusWindow());
- canvas.requestActivateWindow();
+ QTest::qWaitForWindowActive(&canvas);
QVERIFY(canvas.rootObject() != 0);
QQuickTextEdit *input = qobject_cast<QQuickTextEdit *>(qvariant_cast<QObject *>(canvas.rootObject()->property("myInput")));
QVERIFY(input != 0);
- QTRY_VERIFY(input->hasActiveFocus() == true);
+ QVERIFY(input->hasActiveFocus());
QSignalSpy spy(input, SIGNAL(selectedTextChanged()));
canvas.show();
canvas.requestActivateWindow();
QTest::qWaitForWindowActive(&canvas);
- QTRY_COMPARE(&canvas, qGuiApp->focusWindow());
QVERIFY(canvas.rootObject() != 0);
QQuickTextEdit *textEditObject = qobject_cast<QQuickTextEdit *>(canvas.rootObject());
canvas.show();
canvas.requestActivateWindow();
- QTest::qWaitForWindowShown(&canvas);
- QTRY_COMPARE(&canvas, qGuiApp->focusWindow());
+ QTest::qWaitForWindowActive(&canvas);
QVERIFY(canvas.rootObject() != 0);
QQuickTextEdit *textEditObject = qobject_cast<QQuickTextEdit *>(canvas.rootObject());
canvas.show();
canvas.requestActivateWindow();
- QTest::qWaitForWindowShown(&canvas);
- QTRY_COMPARE(&canvas, qGuiApp->focusWindow());
+ QTest::qWaitForWindowActive(&canvas);
QVERIFY(canvas.rootObject() != 0);
QQuickTextEdit *textEditObject = qobject_cast<QQuickTextEdit *>(canvas.rootObject());
texteditObject->setCursorPosition(0);
QInputMethodEvent inputEvent(preeditText, QList<QInputMethodEvent::Attribute>());
- QGuiApplication::sendEvent(qGuiApp->focusObject(), &inputEvent);
+ QGuiApplication::sendEvent(texteditObject, &inputEvent);
// Check all points within the preedit text return the same position.
QCOMPARE(texteditObject->positionAt(0, y0), 0);
QVERIFY(canvas.rootObject() != 0);
canvas.show();
canvas.requestActivateWindow();
- QTest::qWaitForWindowShown(&canvas);
+ QTest::qWaitForWindowActive(&canvas);
QQuickTextEdit *texteditObject = qobject_cast<QQuickTextEdit *>(canvas.rootObject());
QVERIFY(texteditObject != 0);
QQuickView view(testFileUrl("cursorVisible.qml"));
view.show();
view.requestActivateWindow();
- QTest::qWaitForWindowShown(&view);
- QTRY_COMPARE(&view, qGuiApp->focusWindow());
+ QTest::qWaitForWindowActive(&view);
+ QCOMPARE(&view, qGuiApp->focusWindow());
QCOMPARE(edit.isCursorVisible(), false);
QWindow alternateView;
alternateView.show();
alternateView.requestActivateWindow();
- QTest::qWaitForWindowShown(&alternateView);
+ QTest::qWaitForWindowActive(&alternateView);
QCOMPARE(edit.isCursorVisible(), false);
QCOMPARE(spy.count(), 6);
QQuickView view(testFileUrl("inputMethodEvent.qml"));
view.show();
view.requestActivateWindow();
- QTest::qWaitForWindowShown(&view);
- QTRY_COMPARE(&view, qGuiApp->focusWindow());
+ QTest::qWaitForWindowActive(&view);
QQuickTextEdit *edit = qobject_cast<QQuickTextEdit *>(view.rootObject());
QVERIFY(edit);
QVERIFY(edit->hasActiveFocus() == true);
QSignalSpy spy(edit, SIGNAL(textChanged()));
QInputMethodEvent event;
event.setCommitString( "Hello world!", 0, 0);
- QGuiApplication::sendEvent(qGuiApp->focusObject(), &event);
+ QGuiApplication::sendEvent(edit, &event);
QCOMPARE(edit->text(), QString("Hello world!"));
QCOMPARE(spy.count(), 1);
QCOMPARE(editPrivate->text, QString("Hello world!"));
QInputMethodQueryEvent queryEvent(Qt::ImEnabled);
- QGuiApplication::sendEvent(qGuiApp->focusObject(), &queryEvent);
+ QGuiApplication::sendEvent(edit, &queryEvent);
QCOMPARE(queryEvent.value(Qt::ImEnabled).toBool(), true);
edit->setReadOnly(true);
QQuickView view(testFileUrl("inputMethodEvent.qml"));
view.show();
view.requestActivateWindow();
- QTest::qWaitForWindowShown(&view);
- QTRY_COMPARE(&view, qGuiApp->focusWindow());
+ QTest::qWaitForWindowActive(&view);
QQuickTextEdit *edit = qobject_cast<QQuickTextEdit *>(view.rootObject());
QVERIFY(edit);
QVERIFY(edit->hasActiveFocus() == true);
QQuickView view(testFileUrl("openInputPanel.qml"));
view.show();
view.requestActivateWindow();
- QTest::qWaitForWindowShown(&view);
- QTRY_COMPARE(&view, qGuiApp->focusWindow());
+ QTest::qWaitForWindowActive(&view);
QQuickTextEdit *edit = qobject_cast<QQuickTextEdit *>(view.rootObject());
QVERIFY(edit);
// check default values
QVERIFY(edit->focusOnPress());
QVERIFY(!edit->hasActiveFocus());
- qDebug() << &edit << qApp->focusObject();
QVERIFY(qApp->focusObject() != edit);
QCOMPARE(qApp->inputMethod()->isVisible(), false);
QQuickView view(testFileUrl("inputMethodEvent.qml"));
view.show();
view.requestActivateWindow();
- QTest::qWaitForWindowShown(&view);
+ QTest::qWaitForWindowActive(&view);
- QTRY_COMPARE(&view, qGuiApp->focusWindow());
QQuickTextEdit *edit = qobject_cast<QQuickTextEdit *>(view.rootObject());
QVERIFY(edit);
QRectF currentRect;
+ QCOMPARE(QGuiApplication::focusObject(), static_cast<QObject *>(edit));
QInputMethodQueryEvent query(Qt::ImCursorRectangle);
- QCoreApplication::sendEvent(qGuiApp->focusObject(), &query);
+ QCoreApplication::sendEvent(edit, &query);
QRectF previousRect = query.value(Qt::ImCursorRectangle).toRectF();
// Verify that the micro focus rect is positioned the same for position 0 as
// it would be if there was no preedit text.
QInputMethodEvent imEvent(preeditText, QList<QInputMethodEvent::Attribute>()
<< QInputMethodEvent::Attribute(QInputMethodEvent::Cursor, 0, preeditText.length(), QVariant()));
- QCoreApplication::sendEvent(qGuiApp->focusObject(), &imEvent);
- QCoreApplication::sendEvent(qGuiApp->focusObject(), &query);
+ QCoreApplication::sendEvent(edit, &imEvent);
+ QCoreApplication::sendEvent(edit, &query);
currentRect = query.value(Qt::ImCursorRectangle).toRectF();
QCOMPARE(edit->cursorRectangle(), currentRect);
QCOMPARE(cursor->pos(), currentRect.topLeft());
for (int i = 1; i <= 5; ++i) {
QInputMethodEvent imEvent(preeditText, QList<QInputMethodEvent::Attribute>()
<< QInputMethodEvent::Attribute(QInputMethodEvent::Cursor, i, preeditText.length(), QVariant()));
- QCoreApplication::sendEvent(qGuiApp->focusObject(), &imEvent);
- QCoreApplication::sendEvent(qGuiApp->focusObject(), &query);
+ QCoreApplication::sendEvent(edit, &imEvent);
+ QCoreApplication::sendEvent(edit, &query);
currentRect = query.value(Qt::ImCursorRectangle).toRectF();
QCOMPARE(edit->cursorRectangle(), currentRect);
QCOMPARE(cursor->pos(), currentRect.topLeft());
panelSpy.clear();
{ QInputMethodEvent imEvent("wwwww", QList<QInputMethodEvent::Attribute>()
<< QInputMethodEvent::Attribute(QInputMethodEvent::Cursor, 5, 1, QVariant()));
- QCoreApplication::sendEvent(qGuiApp->focusObject(), &imEvent); }
- QCoreApplication::sendEvent(qGuiApp->focusObject(), &query);
+ QCoreApplication::sendEvent(edit, &imEvent); }
+ QCoreApplication::sendEvent(edit, &query);
currentRect = query.value(Qt::ImCursorRectangle).toRectF();
QCOMPARE(edit->cursorRectangle(), currentRect);
QCOMPARE(cursor->pos(), currentRect.topLeft());
editSpy.clear();
panelSpy.clear();
{ QInputMethodEvent imEvent(preeditText, QList<QInputMethodEvent::Attribute>());
- QCoreApplication::sendEvent(qGuiApp->focusObject(), &imEvent); }
- QCoreApplication::sendEvent(qGuiApp->focusObject(), &query);
+ QCoreApplication::sendEvent(edit, &imEvent); }
+ QCoreApplication::sendEvent(edit, &query);
currentRect = query.value(Qt::ImCursorRectangle).toRectF();
QCOMPARE(edit->cursorRectangle(), currentRect);
QCOMPARE(cursor->pos(), currentRect.topLeft());
QQuickView view(testFileUrl("inputContext.qml"));
view.show();
view.requestActivateWindow();
- QTest::qWaitForWindowShown(&view);
- QTRY_COMPARE(&view, qGuiApp->focusWindow());
+ QTest::qWaitForWindowActive(&view);
+
QQuickTextEdit *edit = qobject_cast<QQuickTextEdit *>(view.rootObject());
QVERIFY(edit);
+ QCOMPARE(QGuiApplication::focusObject(), static_cast<QObject *>(edit));
+
QSignalSpy spy(edit, SIGNAL(inputMethodComposingChanged()));
edit->setCursorPosition(12);
textEdit->setFocus(true);
canvas->show();
canvas->requestActivateWindow();
- QTest::qWaitForWindowShown(canvas);
+ QTest::qWaitForWindowActive(canvas);
QInputMethodQueryEvent event(Qt::ImCursorRectangle);
- qApp->sendEvent(qApp->focusObject(), &event);
+ qApp->sendEvent(textEdit, &event);
QRectF cursorRectFromQuery = event.value(Qt::ImCursorRectangle).toRectF();
QRectF cursorRectFromItem = textEdit->cursorRectangle();
textEdit->setParentItem(canvas.rootItem());
canvas.show();
canvas.requestActivateWindow();
- QTest::qWaitForWindowShown(&canvas);
- QTRY_COMPARE(QGuiApplication::focusWindow(), &canvas);
+ QTest::qWaitForWindowActive(&canvas);
+
+ QVERIFY(textEdit->hasActiveFocus());
simulateKey(&canvas, layoutDirection);
canvas.show();
canvas.requestActivateWindow();
QTest::qWaitForWindowActive(&canvas);
- QTRY_COMPARE(QGuiApplication::focusWindow(), &canvas);
+ QVERIFY(textEdit->hasActiveFocus());
QVERIFY(!textEdit->canUndo());
QSignalSpy spy(textEdit, SIGNAL(canUndoChanged()));
textEdit->setParentItem(canvas.rootItem());
canvas.show();
canvas.requestActivateWindow();
- QTest::qWaitForWindowShown(&canvas);
- QTRY_COMPARE(QGuiApplication::focusWindow(), &canvas);
+ QTest::qWaitForWindowActive(&canvas);
+ QVERIFY(textEdit->hasActiveFocus());
QVERIFY(!textEdit->canUndo());
QVERIFY(!textEdit->canRedo());
textEdit->setParentItem(canvas.rootItem());
canvas.show();
canvas.requestActivateWindow();
- QTest::qWaitForWindowShown(&canvas);
- QTRY_COMPARE(QGuiApplication::focusWindow(), &canvas);
+ QTest::qWaitForWindowActive(&canvas);
+ QVERIFY(textEdit->hasActiveFocus());
simulateKeys(&canvas, keys);
canvas.show();
canvas.requestActivateWindow();
- QTest::qWaitForWindowShown(&canvas);
+ QTest::qWaitForWindowActive(&canvas);
QQuickTextEdit *input = qobject_cast<QQuickTextEdit *>(qvariant_cast<QObject *>(canvas.rootObject()->property("inputField")));
QVERIFY(input->hasActiveFocus());
QQuickView canvas(testFileUrl("persistentSelection.qml"));
canvas.show();
canvas.requestActivateWindow();
- QTest::qWaitForWindowShown(&canvas);
- QTRY_COMPARE(&canvas, qGuiApp->focusWindow());
- canvas.requestActivateWindow();
+ QTest::qWaitForWindowActive(&canvas);
QQuickTextInput *input = qobject_cast<QQuickTextInput *>(canvas.rootObject());
QVERIFY(input);
canvas.requestActivateWindow();
QTest::qWaitForWindowActive(&canvas);
- QTRY_COMPARE(&canvas, qGuiApp->focusWindow());
-
QVERIFY(canvas.rootObject() != 0);
QQuickTextInput *textInputObject = qobject_cast<QQuickTextInput *>(canvas.rootObject());
QVERIFY(textInputObject != 0);
canvas.show();
canvas.requestActivateWindow();
QTest::qWaitForWindowActive(&canvas);
- QTRY_COMPARE(&canvas, qGuiApp->focusWindow());
QVERIFY(canvas.rootObject() != 0);
QQuickTextInput *textInputObject = qobject_cast<QQuickTextInput *>(canvas.rootObject());
QQuickView canvas(testFileUrl("horizontalAlignment.qml"));
canvas.show();
- canvas.requestActivateWindow();
QTest::qWaitForWindowShown(&canvas);
- QTRY_COMPARE(&canvas, qGuiApp->focusWindow());
+
QObject *ob = canvas.rootObject();
QVERIFY(ob != 0);
ob->setProperty("horizontalAlignment",hAlign);
QCOMPARE(textInput->boundingRect().left(), qreal(0));
canvas.requestActivateWindow();
- QTest::qWaitForWindowShown(&canvas);
- QTRY_COMPARE(&canvas, qGuiApp->focusWindow());
+ QTest::qWaitForWindowActive(&canvas);
+ QVERIFY(textInput->hasActiveFocus());
// If there is no commited text, the preedit text should determine the alignment.
textInput->setText(QString());
- { QInputMethodEvent ev(rtlText, QList<QInputMethodEvent::Attribute>()); QGuiApplication::sendEvent(qGuiApp->focusObject(), &ev); }
+ { QInputMethodEvent ev(rtlText, QList<QInputMethodEvent::Attribute>()); QGuiApplication::sendEvent(textInput, &ev); }
QCOMPARE(textInput->hAlign(), QQuickTextInput::AlignRight);
- { QInputMethodEvent ev("Hello world!", QList<QInputMethodEvent::Attribute>()); QGuiApplication::sendEvent(qGuiApp->focusObject(), &ev); }
+ { QInputMethodEvent ev("Hello world!", QList<QInputMethodEvent::Attribute>()); QGuiApplication::sendEvent(textInput, &ev); }
QCOMPARE(textInput->hAlign(), QQuickTextInput::AlignLeft);
// Clear pre-edit text. TextInput should maybe do this itself on setText, but that may be
// redundant as an actual input method may take care of it.
- { QInputMethodEvent ev; QGuiApplication::sendEvent(qGuiApp->focusObject(), &ev); }
+ { QInputMethodEvent ev; QGuiApplication::sendEvent(textInput, &ev); }
// empty text with implicit alignment follows the system locale-based
// keyboard input direction from QInputMethod::inputDirection()
QVERIFY(canvas.rootObject() != 0);
canvas.show();
canvas.requestActivateWindow();
- QTest::qWaitForWindowShown(&canvas);
+ QTest::qWaitForWindowActive(&canvas);
QQuickTextInput *textinputObject = qobject_cast<QQuickTextInput *>(canvas.rootObject());
QVERIFY(textinputObject != 0);
{ QInputMethodEvent inputEvent(preeditText, QList<QInputMethodEvent::Attribute>());
QVERIFY(qGuiApp->focusObject());
- QGuiApplication::sendEvent(qGuiApp->focusObject(), &inputEvent); }
+ QGuiApplication::sendEvent(textinputObject, &inputEvent); }
// Check all points within the preedit text return the same position.
QCOMPARE(evaluate<int>(textinputObject, QString("positionAt(%1)").arg(0)), 0);
{ QInputMethodEvent inputEvent;
QVERIFY(qGuiApp->focusObject());
- QGuiApplication::sendEvent(qGuiApp->focusObject(), &inputEvent); }
+ QGuiApplication::sendEvent(textinputObject, &inputEvent); }
// With wrapping.
textinputObject->setWrapMode(QQuickTextInput::WrapAnywhere);
QVERIFY(canvas.rootObject() != 0);
canvas.show();
canvas.requestActivateWindow();
- QTest::qWaitForWindowShown(&canvas);
+ QTest::qWaitForWindowActive(&canvas);
QQuickTextInput *textinputObject = qobject_cast<QQuickTextInput *>(canvas.rootObject());
QVERIFY(textinputObject != 0);
QQuickView canvas(testFileUrl("inputmethods.qml"));
canvas.show();
canvas.requestActivateWindow();
- QTest::qWaitForWindowShown(&canvas);
+ QTest::qWaitForWindowActive(&canvas);
// test input method hints
QVERIFY(canvas.rootObject() != 0);
QInputMethodEvent event;
event.setCommitString( "My ", -12, 0);
QTRY_COMPARE(qGuiApp->focusObject(), input);
- QGuiApplication::sendEvent(qGuiApp->focusObject(), &event);
+ QGuiApplication::sendEvent(input, &event);
QCOMPARE(input->text(), QString("My Hello world!"));
input->setCursorPosition(2);
event.setCommitString("Your", -2, 2);
- QGuiApplication::sendEvent(qGuiApp->focusObject(), &event);
+ QGuiApplication::sendEvent(input, &event);
QCOMPARE(input->text(), QString("Your Hello world!"));
QCOMPARE(input->cursorPosition(), 4);
input->setCursorPosition(7);
event.setCommitString("Goodbye", -2, 5);
- QGuiApplication::sendEvent(qGuiApp->focusObject(), &event);
+ QGuiApplication::sendEvent(input, &event);
QCOMPARE(input->text(), QString("Your Goodbye world!"));
QCOMPARE(input->cursorPosition(), 12);
input->setCursorPosition(8);
event.setCommitString("Our", -8, 4);
- QGuiApplication::sendEvent(qGuiApp->focusObject(), &event);
+ QGuiApplication::sendEvent(input, &event);
QCOMPARE(input->text(), QString("Our Goodbye world!"));
QCOMPARE(input->cursorPosition(), 7);
input->setCursorPosition(0);
input->moveCursorSelection(input->text().length());
event.setCommitString("replacement", -input->text().length(), input->text().length());
- QGuiApplication::sendEvent(qGuiApp->focusObject(), &event);
+ QGuiApplication::sendEvent(input, &event);
QCOMPARE(input->selectionStart(), input->selectionEnd());
QInputMethodQueryEvent enabledQueryEvent(Qt::ImEnabled);
textInput->setParentItem(canvas.rootItem());
canvas.show();
canvas.requestActivateWindow();
- QTest::qWaitForWindowShown(&canvas);
- QTRY_COMPARE(QGuiApplication::focusWindow(), &canvas);
+ QTest::qWaitForWindowActive(&canvas);
// copy and paste
QVERIFY(textInput->hasActiveFocus());
QQuickView view(testFileUrl("cursorVisible.qml"));
view.show();
view.requestActivateWindow();
- QTest::qWaitForWindowShown(&view);
- QTRY_COMPARE(&view, qGuiApp->focusWindow());
+ QTest::qWaitForWindowActive(&view);
QCOMPARE(input.isCursorVisible(), false);
QWindow alternateView;
alternateView.show();
alternateView.requestActivateWindow();
- QTest::qWaitForWindowShown(&alternateView);
+ QTest::qWaitForWindowActive(&alternateView);
QCOMPARE(input.isCursorVisible(), false);
QCOMPARE(spy.count(), 6);
QQuickView canvas(testFileUrl("echoMode.qml"));
canvas.show();
canvas.requestActivateWindow();
- QTest::qWaitForWindowShown(&canvas);
- QTRY_COMPARE(&canvas, qGuiApp->focusWindow());
+ QTest::qWaitForWindowActive(&canvas);
QVERIFY(canvas.rootObject() != 0);
QQuickView canvas(testFileUrl("echoMode.qml"));
canvas.show();
canvas.requestActivateWindow();
- QTest::qWaitForWindowShown(&canvas);
- QTRY_COMPARE(&canvas, qGuiApp->focusWindow());
+ QTest::qWaitForWindowActive(&canvas);
QVERIFY(canvas.rootObject() != 0);
QQuickTextInput *input = qobject_cast<QQuickTextInput *>(qvariant_cast<QObject *>(canvas.rootObject()->property("myInput")));
QVERIFY(input);
+ QVERIFY(input->hasActiveFocus());
QQuickItem *cursor = input->findChild<QQuickItem *>("cursor");
QVERIFY(cursor);
QInputMethodEvent ev;
ev.setCommitString(QLatin1String("7"));
- QGuiApplication::sendEvent(qGuiApp->focusObject(), &ev);
+ QGuiApplication::sendEvent(input, &ev);
QCOMPARE(input->displayText(), QString(7, fillChar) + QLatin1Char('7'));
input->setCursorPosition(3);
textInputObject->setParentItem(canvas.rootItem());
canvas.show();
canvas.requestActivateWindow();
- QTest::qWaitForWindowShown(&canvas);
- QTRY_COMPARE(QGuiApplication::focusWindow(), &canvas);
+ QTest::qWaitForWindowActive(&canvas);
QCOMPARE(textInputObject->hasFocus(), false);
QCOMPARE(textInputObject->hasActiveFocus(), false);
QQuickView view(testFileUrl("openInputPanel.qml"));
view.show();
view.requestActivateWindow();
- QTest::qWaitForWindowShown(&view);
- QTRY_COMPARE(&view, qGuiApp->focusWindow());
+ QTest::qWaitForWindowActive(&view);
QQuickTextInput *input = qobject_cast<QQuickTextInput *>(view.rootObject());
QVERIFY(input);
input.setParentItem(view.rootItem());
view.show();
view.requestActivateWindow();
- QTest::qWaitForWindowShown(&view);
+ QTest::qWaitForWindowActive(&view);
#ifdef Q_OS_MAC
QEXPECT_FAIL("", "QTBUG-23485", Abort);
#endif
input2.componentComplete();
view.show();
view.requestActivateWindow();
- QTest::qWaitForWindowShown(&view);
+ QTest::qWaitForWindowActive(&view);
+ QVERIFY(input.hasActiveFocus());
input.select(2,5);
//The selection should work
QTRY_COMPARE(input.selectedText(), QLatin1String("llo"));
}
}
-static void sendPreeditText(const QString &text, int cursor)
+static void sendPreeditText(QQuickItem *item, const QString &text, int cursor)
{
QInputMethodEvent event(text, QList<QInputMethodEvent::Attribute>()
<< QInputMethodEvent::Attribute(QInputMethodEvent::Cursor, cursor, text.length(), QVariant()));
- QCoreApplication::sendEvent(qGuiApp->focusObject(), &event);
+ QCoreApplication::sendEvent(item, &event);
}
void tst_qquicktextinput::preeditAutoScroll()
QQuickView view(testFileUrl("preeditAutoScroll.qml"));
view.show();
view.requestActivateWindow();
- QTest::qWaitForWindowShown(&view);
- QTRY_COMPARE(&view, qGuiApp->focusWindow());
+ QTest::qWaitForWindowActive(&view);
QQuickTextInput *input = qobject_cast<QQuickTextInput *>(view.rootObject());
QVERIFY(input);
QVERIFY(input->hasActiveFocus());
int cursorRectangleChanges = 0;
// test the text is scrolled so the preedit is visible.
- sendPreeditText(preeditText.mid(0, 3), 1);
+ sendPreeditText(input, preeditText.mid(0, 3), 1);
QVERIFY(evaluate<int>(input, QString("positionAt(0)")) != 0);
QVERIFY(input->cursorRectangle().left() < input->boundingRect().width());
QCOMPARE(cursorRectangleSpy.count(), ++cursorRectangleChanges);
// test the text is scrolled back when the preedit is removed.
QInputMethodEvent imEvent;
- QCoreApplication::sendEvent(qGuiApp->focusObject(), &imEvent);
+ QCoreApplication::sendEvent(input, &imEvent);
QCOMPARE(evaluate<int>(input, QString("positionAt(%1)").arg(0)), 0);
QCOMPARE(evaluate<int>(input, QString("positionAt(%1)").arg(input->width())), 5);
QCOMPARE(cursorRectangleSpy.count(), ++cursorRectangleChanges);
// character preceding the cursor is still visible.
qreal x = input->positionToRectangle(0).x();
for (int i = 0; i < 3; ++i) {
- sendPreeditText(preeditText, i + 1);
+ sendPreeditText(input, preeditText, i + 1);
int width = ceil(line.cursorToX(i, QTextLine::Trailing)) - floor(line.cursorToX(i));
QVERIFY(input->cursorRectangle().right() >= width - 3);
QVERIFY(input->positionToRectangle(0).x() < x);
x = input->positionToRectangle(0).x();
}
for (int i = 1; i >= 0; --i) {
- sendPreeditText(preeditText, i + 1);
+ sendPreeditText(input, preeditText, i + 1);
int width = ceil(line.cursorToX(i, QTextLine::Trailing)) - floor(line.cursorToX(i));
QVERIFY(input->cursorRectangle().right() >= width - 3);
QVERIFY(input->positionToRectangle(0).x() > x);
// Test incrementing the preedit cursor doesn't cause further
// scrolling when right most text is visible.
- sendPreeditText(preeditText, preeditText.length() - 3);
+ sendPreeditText(input, preeditText, preeditText.length() - 3);
QCOMPARE(cursorRectangleSpy.count(), ++cursorRectangleChanges);
x = input->positionToRectangle(0).x();
for (int i = 2; i >= 0; --i) {
- sendPreeditText(preeditText, preeditText.length() - i);
+ sendPreeditText(input, preeditText, preeditText.length() - i);
QCOMPARE(input->positionToRectangle(0).x(), x);
QCOMPARE(cursorRectangleSpy.count(), ++cursorRectangleChanges);
}
for (int i = 1; i < 3; ++i) {
- sendPreeditText(preeditText, preeditText.length() - i);
+ sendPreeditText(input, preeditText, preeditText.length() - i);
QCOMPARE(input->positionToRectangle(0).x(), x);
QCOMPARE(cursorRectangleSpy.count(), ++cursorRectangleChanges);
}
// Test disabling auto scroll.
- QCoreApplication::sendEvent(qGuiApp->focusObject(), &imEvent);
+ QCoreApplication::sendEvent(input, &imEvent);
input->setAutoScroll(false);
- sendPreeditText(preeditText.mid(0, 3), 1);
+ sendPreeditText(input, preeditText.mid(0, 3), 1);
QCOMPARE(evaluate<int>(input, QString("positionAt(%1)").arg(0)), 0);
QCOMPARE(evaluate<int>(input, QString("positionAt(%1)").arg(input->width())), 5);
}
QQuickView view(testFileUrl("inputMethodEvent.qml"));
view.show();
view.requestActivateWindow();
- QTest::qWaitForWindowShown(&view);
- QTRY_COMPARE(&view, qGuiApp->focusWindow());
+ QTest::qWaitForWindowActive(&view);
QQuickTextInput *input = qobject_cast<QQuickTextInput *>(view.rootObject());
QVERIFY(input);
+ QVERIFY(input->hasActiveFocus());
QQuickItem *cursor = input->findChild<QQuickItem *>("cursor");
QVERIFY(cursor);
QRectF currentRect;
QInputMethodQueryEvent query(Qt::ImCursorRectangle);
- QCoreApplication::sendEvent(qGuiApp->focusObject(), &query);
+ QCoreApplication::sendEvent(input, &query);
QRectF previousRect = query.value(Qt::ImCursorRectangle).toRectF();
// Verify that the micro focus rect is positioned the same for position 0 as
// it would be if there was no preedit text.
- sendPreeditText(preeditText, 0);
- QCoreApplication::sendEvent(qGuiApp->focusObject(), &query);
+ sendPreeditText(input, preeditText, 0);
+ QCoreApplication::sendEvent(input, &query);
currentRect = query.value(Qt::ImCursorRectangle).toRectF();
QCOMPARE(currentRect, previousRect);
QCOMPARE(input->cursorRectangle(), currentRect);
// Verify that the micro focus rect moves to the left as the cursor position
// is incremented.
for (int i = 1; i <= 5; ++i) {
- sendPreeditText(preeditText, i);
- QCoreApplication::sendEvent(qGuiApp->focusObject(), &query);
+ sendPreeditText(input, preeditText, i);
+ QCoreApplication::sendEvent(input, &query);
currentRect = query.value(Qt::ImCursorRectangle).toRectF();
QVERIFY(previousRect.left() < currentRect.left());
QCOMPARE(input->cursorRectangle(), currentRect);
// but the (non-zero) cursor position is the same.
inputSpy.clear();
panelSpy.clear();
- sendPreeditText("wwwww", 5);
- QCoreApplication::sendEvent(qGuiApp->focusObject(), &query);
+ sendPreeditText(input, "wwwww", 5);
+ QCoreApplication::sendEvent(input, &query);
currentRect = query.value(Qt::ImCursorRectangle).toRectF();
QCOMPARE(input->cursorRectangle(), currentRect);
QCOMPARE(cursor->pos(), currentRect.topLeft());
inputSpy.clear();
panelSpy.clear();
{ QInputMethodEvent imEvent(preeditText, QList<QInputMethodEvent::Attribute>());
- QCoreApplication::sendEvent(qGuiApp->focusObject(), &imEvent); }
- QCoreApplication::sendEvent(qGuiApp->focusObject(), &query);
+ QCoreApplication::sendEvent(input, &imEvent); }
+ QCoreApplication::sendEvent(input, &query);
currentRect = query.value(Qt::ImCursorRectangle).toRectF();
QCOMPARE(currentRect, previousRect);
QCOMPARE(input->cursorRectangle(), currentRect);
view.show();
view.requestActivateWindow();
- QTest::qWaitForWindowShown(&view);
- QTRY_COMPARE(&view, qGuiApp->focusWindow());
+ QTest::qWaitForWindowActive(&view);
QTextLayout layout(text);
layout.setFont(input->font());
QQuickView view(testFileUrl("inputContext.qml"));
view.show();
view.requestActivateWindow();
- QTest::qWaitForWindowShown(&view);
- QTRY_COMPARE(&view, qGuiApp->focusWindow());
+ QTest::qWaitForWindowActive(&view);
QQuickTextInput *input = qobject_cast<QQuickTextInput *>(view.rootObject());
QVERIFY(input);
+ QVERIFY(input->hasActiveFocus());
QSignalSpy spy(input, SIGNAL(inputMethodComposingChanged()));
QCOMPARE(input->isInputMethodComposing(), false);
QQuickView view(testFileUrl("inputContext.qml"));
view.show();
view.requestActivateWindow();
- QTest::qWaitForWindowShown(&view);
- QTRY_COMPARE(&view, qGuiApp->focusWindow());
+ QTest::qWaitForWindowActive(&view);
QQuickTextInput *input = qobject_cast<QQuickTextInput *>(view.rootObject());
QVERIFY(input);
+ QVERIFY(input->hasActiveFocus());
// text change even without cursor position change needs to trigger update
input->setText("test");
textInput->setFocus(true);
canvas->show();
canvas->requestActivateWindow();
- QTest::qWaitForWindowShown(canvas);
- QTRY_VERIFY(qApp->focusObject());
+ QTest::qWaitForWindowActive(canvas);
+ QVERIFY(textInput->hasActiveFocus());
QInputMethodQueryEvent event(Qt::ImCursorRectangle);
- qApp->sendEvent(qApp->focusObject(), &event);
+ qApp->sendEvent(textInput, &event);
QRectF cursorRectFromQuery = event.value(Qt::ImCursorRectangle).toRectF();
QRectF cursorRectFromItem = textInput->cursorRectangle();
view.requestActivateWindow();
QTest::qWaitForWindowActive(&view);
- QTRY_COMPARE(&view, qGuiApp->focusWindow());
-
QQuickTextInput* input = qobject_cast<QQuickTextInput*>(view.rootObject());
QVERIFY(input);
textInput->setParentItem(canvas.rootItem());
canvas.show();
canvas.requestActivateWindow();
- QTest::qWaitForWindowShown(&canvas);
- QTRY_COMPARE(QGuiApplication::focusWindow(), &canvas);
+ QTest::qWaitForWindowActive(&canvas);
+ QVERIFY(textInput->hasActiveFocus());
simulateKey(&canvas, layoutDirection);
textInput->setParentItem(canvas.rootItem());
canvas.show();
canvas.requestActivateWindow();
- QTest::qWaitForWindowShown(&canvas);
- QTRY_COMPARE(QGuiApplication::focusWindow(), &canvas);
+ QTest::qWaitForWindowActive(&canvas);
+ QVERIFY(textInput->hasActiveFocus());
QVERIFY(!textInput->canUndo());
textInput->setParentItem(canvas.rootItem());
canvas.show();
canvas.requestActivateWindow();
- QTest::qWaitForWindowShown(&canvas);
- QTRY_COMPARE(QGuiApplication::focusWindow(), &canvas);
+ QTest::qWaitForWindowActive(&canvas);
+ QVERIFY(textInput->hasActiveFocus());
QVERIFY(!textInput->canUndo());
QVERIFY(!textInput->canRedo());
textInput->setParentItem(canvas.rootItem());
canvas.show();
canvas.requestActivateWindow();
- QTest::qWaitForWindowShown(&canvas);
- QTRY_COMPARE(QGuiApplication::focusWindow(), &canvas);
+ QTest::qWaitForWindowActive(&canvas);
+ QVERIFY(textInput->hasActiveFocus());
simulateKeys(&canvas, keys);
QQuickView canvas(testFileUrl(url));
canvas.show();
canvas.requestActivateWindow();
- QTest::qWaitForWindowShown(&canvas);
+ QTest::qWaitForWindowActive(&canvas);
QVERIFY(canvas.rootObject() != 0);
QQuickTextInput *input = qobject_cast<QQuickTextInput*>(canvas.rootObject());
QVERIFY(input);
QQuickView canvas(url);
canvas.show();
canvas.requestActivateWindow();
- QTest::qWaitForWindowShown(&canvas);
+ QTest::qWaitForWindowActive(&canvas);
QVERIFY(canvas.rootObject() != 0);
QQuickTextInput *input = qobject_cast<QQuickTextInput*>(canvas.rootObject());
QVERIFY(input);
textInput->setParentItem(canvas.rootItem());
canvas.show();
canvas.requestActivateWindow();
- QTest::qWaitForWindowShown(&canvas);
- QTRY_COMPARE(QGuiApplication::focusWindow(), &canvas);
+ QTest::qWaitForWindowActive(&canvas);
+ QVERIFY(textInput->hasActiveFocus());
simulateKey(&canvas, Qt::Key_Home);
for (int i = 0; i < input.length(); i++)
textInput->setParentItem(canvas.rootItem());
canvas.show();
canvas.requestActivateWindow();
- QTest::qWaitForWindowShown(&canvas);
- QTRY_COMPARE(QGuiApplication::focusWindow(), &canvas);
+ QTest::qWaitForWindowActive(&canvas);
+ QVERIFY(textInput->hasActiveFocus());
simulateKeys(&canvas, keys);
QFETCH(QString, invalid);
QFETCH(QString, valid);
- QString componentStr = "import QtQuick 2.0\nTextInput { focus: true; inputMask: \"" + optionalMask + "\" }";
+ QString componentStr = "import QtQuick 2.0\nTextInput { inputMask: \"" + optionalMask + "\" }";
QQmlComponent textInputComponent(&engine);
textInputComponent.setData(componentStr.toLatin1(), QUrl());
QQuickTextInput *textInput = qobject_cast<QQuickTextInput*>(textInputComponent.create());
QVERIFY(textInput != 0);
- QQuickCanvas canvas;
- textInput->setParentItem(canvas.rootItem());
- canvas.show();
- canvas.requestActivateWindow();
- QTest::qWaitForWindowShown(&canvas);
- QTRY_COMPARE(QGuiApplication::focusWindow(), &canvas);
-
// test that invalid input (for required) work for optionalMask
textInput->setText(invalid);
QVERIFY(textInput->hasAcceptableInput());
QFETCH(QString, input);
QFETCH(bool, expectedValid);
- QString componentStr = "import QtQuick 2.0\nTextInput { focus: true; inputMask: \"" + mask + "\" }";
+ QString componentStr = "import QtQuick 2.0\nTextInput { inputMask: \"" + mask + "\" }";
QQmlComponent textInputComponent(&engine);
textInputComponent.setData(componentStr.toLatin1(), QUrl());
QQuickTextInput *textInput = qobject_cast<QQuickTextInput*>(textInputComponent.create());
QVERIFY(textInput != 0);
- QQuickCanvas canvas;
- textInput->setParentItem(canvas.rootItem());
- canvas.show();
- canvas.requestActivateWindow();
- QTest::qWaitForWindowShown(&canvas);
- QTRY_COMPARE(QGuiApplication::focusWindow(), &canvas);
-
for (int i = 0; i < input.size(); ++i) {
QString in = QString(input.at(i));
QString expected = expectedValid ? in : QString();