diff options
author | Andrew den Exter <andrew.den-exter@nokia.com> | 2011-05-20 14:22:39 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-09-07 05:56:53 +0200 |
commit | 17330e9cd94a64afb000a63a40b2e9646520a847 (patch) | |
tree | 57ed25504fbbdab2114bf2d95c8b87f33c5f0b11 /tests/auto/qtquick1/qdeclarativetextedit | |
parent | 8282beb53de059237a4240ad9615d77f676c20fb (diff) |
Fix left alignment of native RTL pre-edit text.
If there is no committed text in a TextInput or TextEdit determine
if the pre-edit text is right to left before falling back to the
global keyboard settings.
Change-Id: I7e5568e936341602b8faf7be120f9a770c115f48
Task-number: QMLNG-72
Reviewed-by: Michael Brasser
Reviewed-on: http://codereview.qt.nokia.com/4176
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
Diffstat (limited to 'tests/auto/qtquick1/qdeclarativetextedit')
-rw-r--r-- | tests/auto/qtquick1/qdeclarativetextedit/data/horizontalAlignment_RightToLeft.qml | 1 | ||||
-rw-r--r-- | tests/auto/qtquick1/qdeclarativetextedit/tst_qdeclarativetextedit.cpp | 12 |
2 files changed, 13 insertions, 0 deletions
diff --git a/tests/auto/qtquick1/qdeclarativetextedit/data/horizontalAlignment_RightToLeft.qml b/tests/auto/qtquick1/qdeclarativetextedit/data/horizontalAlignment_RightToLeft.qml index 43ea8d8a12..6e739bf2bb 100644 --- a/tests/auto/qtquick1/qdeclarativetextedit/data/horizontalAlignment_RightToLeft.qml +++ b/tests/auto/qtquick1/qdeclarativetextedit/data/horizontalAlignment_RightToLeft.qml @@ -18,6 +18,7 @@ Rectangle { objectName: "text" anchors.fill: parent text: top.text + focus: true } } } diff --git a/tests/auto/qtquick1/qdeclarativetextedit/tst_qdeclarativetextedit.cpp b/tests/auto/qtquick1/qdeclarativetextedit/tst_qdeclarativetextedit.cpp index e74ad4440d..bd8dab01e3 100644 --- a/tests/auto/qtquick1/qdeclarativetextedit/tst_qdeclarativetextedit.cpp +++ b/tests/auto/qtquick1/qdeclarativetextedit/tst_qdeclarativetextedit.cpp @@ -454,6 +454,8 @@ void tst_qdeclarativetextedit::hAlign_RightToLeft() QVERIFY(textEdit != 0); canvas->show(); + const QString rtlText = textEdit->text(); + // implicit alignment should follow the reading direction of text QCOMPARE(textEdit->hAlign(), QDeclarative1TextEdit::AlignRight); QVERIFY(textEdit->positionToRectangle(0).x() > canvas->width()/2); @@ -530,6 +532,16 @@ void tst_qdeclarativetextedit::hAlign_RightToLeft() QCOMPARE(textEdit->hAlign(), QDeclarative1TextEdit::AlignLeft); QVERIFY(textEdit->positionToRectangle(0).x() < canvas->width()/2); + QApplication::setActiveWindow(canvas); + QTest::qWaitForWindowShown(canvas); + QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget *>(canvas)); + + textEdit->setText(QString()); + { QInputMethodEvent ev(rtlText, QList<QInputMethodEvent::Attribute>()); QApplication::sendEvent(canvas, &ev); } + QCOMPARE(textEdit->hAlign(), QDeclarative1TextEdit::AlignRight); + { QInputMethodEvent ev("Hello world!", QList<QInputMethodEvent::Attribute>()); QApplication::sendEvent(canvas, &ev); } + QCOMPARE(textEdit->hAlign(), QDeclarative1TextEdit::AlignLeft); + #ifndef Q_OS_MAC // QTBUG-18040 // empty text with implicit alignment follows the system locale-based // keyboard input direction from QApplication::keyboardInputDirection |