summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/widgets/qtextedit/tst_qtextedit.cpp
diff options
context:
space:
mode:
authorKonstantin Ritt <ritt.ks@gmail.com>2014-04-04 07:28:20 +0300
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-04-04 19:32:21 +0200
commit0b5911f37619acc20463f01df5588764e22a35b0 (patch)
treebe7c5fec3931777c68297a78738d02209cab6a5f /tests/auto/widgets/widgets/qtextedit/tst_qtextedit.cpp
parentd8286729451ce18f07d47a5bc3f5af08eda860fa (diff)
QTextLayout: Fix visual cursor movement in some cases
To guarantee proper positioning at the end of the last line in a bidirectional text we have to insert the eol position into the insertion points vector, accordingly to the visual ordering. Detection of the last *logical* item in a *visual* line is unrelaed to the text direction, it is simply `iterator.item == iterator.lastItem`. [ChangeLog][QtGui][QTextLayout] Fixed visual cursor movement in bidirectional text. Task-number: QTBUG-18060 (partially related) Change-Id: I53b6ab889ef580ab0560b620b808b1e09efc0fbd Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Ahmed Saidi <justroftest@gmail.com>
Diffstat (limited to 'tests/auto/widgets/widgets/qtextedit/tst_qtextedit.cpp')
-rw-r--r--tests/auto/widgets/widgets/qtextedit/tst_qtextedit.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/tests/auto/widgets/widgets/qtextedit/tst_qtextedit.cpp b/tests/auto/widgets/widgets/qtextedit/tst_qtextedit.cpp
index 8695c8b29a..fbd8b46466 100644
--- a/tests/auto/widgets/widgets/qtextedit/tst_qtextedit.cpp
+++ b/tests/auto/widgets/widgets/qtextedit/tst_qtextedit.cpp
@@ -2304,7 +2304,7 @@ void tst_QTextEdit::bidiVisualMovement()
do {
oldPos = newPos;
- QVERIFY(oldPos == positionList[i]);
+ QCOMPARE(oldPos, positionList[i]);
if (basicDir == QChar::DirL) {
ed->moveCursor(QTextCursor::Right);
} else
@@ -2316,12 +2316,12 @@ void tst_QTextEdit::bidiVisualMovement()
i++;
} while (moved);
- QVERIFY(i == positionList.size());
+ QCOMPARE(i, positionList.size());
do {
i--;
oldPos = newPos;
- QVERIFY(oldPos == positionList[i]);
+ QCOMPARE(oldPos, positionList[i]);
if (basicDir == QChar::DirL) {
ed->moveCursor(QTextCursor::Left);
} else
@@ -2342,6 +2342,7 @@ void tst_QTextEdit::bidiLogicalMovement()
{
QFETCH(QString, logical);
QFETCH(int, basicDir);
+ QFETCH(QList<int>, positionList);
ed->setText(logical);
@@ -2358,7 +2359,7 @@ void tst_QTextEdit::bidiLogicalMovement()
do {
oldPos = newPos;
- QVERIFY(oldPos == i);
+ QCOMPARE(oldPos, i);
if (basicDir == QChar::DirL) {
ed->moveCursor(QTextCursor::Right);
} else
@@ -2370,10 +2371,12 @@ void tst_QTextEdit::bidiLogicalMovement()
i++;
} while (moved);
+ QCOMPARE(i, positionList.size());
+
do {
i--;
oldPos = newPos;
- QVERIFY(oldPos == i);
+ QCOMPARE(oldPos, i);
if (basicDir == QChar::DirL) {
ed->moveCursor(QTextCursor::Left);
} else