diff options
author | Lars Knoll <lars.knoll@qt.io> | 2019-01-25 10:49:34 +0100 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2019-02-09 08:01:26 +0000 |
commit | 035d80407b693662c209cd4f156085d583ad428c (patch) | |
tree | 6bb01d7eef842c1278c4efdb8d84f0de22299ab5 /tests | |
parent | 79f2a9e666a241c5baba1b9bf35c12be4cefcc26 (diff) |
Fix two smaller bugs in the BiDi engine
Remove wrong code changing the Bido level of line separators. This
lead to wrong ordering of the string in case the line separator was
meant to be ignored and the string should be rendered in one line. Line
breaks are anyways already reset to the paragraph level by the algorithm
and reordering is done on a line by line basis, so this will work
correctly when doing proper line breaking.
Secondly fix a small bug found while testing the above change, where
we wouldn't set the correct levels for boundary neutrals and explicit
embedding chars because we did that processing before we were fully
done with the BiDi algorithm.
Change-Id: Id88f91cd58d2ab29be864aef34ca1727c1586611
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/other/qcomplextext/bidireorderstring.h | 2 | ||||
-rw-r--r-- | tests/auto/other/qcomplextext/tst_qcomplextext.cpp | 7 |
2 files changed, 7 insertions, 2 deletions
diff --git a/tests/auto/other/qcomplextext/bidireorderstring.h b/tests/auto/other/qcomplextext/bidireorderstring.h index a7401d2c18..b537bf45e4 100644 --- a/tests/auto/other/qcomplextext/bidireorderstring.h +++ b/tests/auto/other/qcomplextext/bidireorderstring.h @@ -78,7 +78,7 @@ const LV logical_visual[] = { { "data42", "foo\nfoo", "foo\nfoo", QChar::DirL }, { "data43", "\327\251\327\234\327\225\327\235\n\327\251\327\234\327\225\327\235", "\327\235\327\225\327\234\327\251\n\327\235\327\225\327\234\327\251", QChar::DirR }, { "data44", "foo\n\327\251\327\234\327\225\327\235", "foo\n\327\235\327\225\327\234\327\251", QChar::DirL }, - { "data45", "\327\251\327\234\327\225\327\235\nfoo", "\327\235\327\225\327\234\327\251\nfoo", QChar::DirR }, + { "data45", "\327\251\327\234\327\225\327\235\nfoo", "foo\n\327\235\327\225\327\234\327\251", QChar::DirR }, { "data46", "\330\250 1.23 \330\250", "\330\250 1.23 \330\250", QChar::DirR }, { "data47", "\331\204\330\250 1.23 \331\202\330\250", "\330\250\331\202 1.23 \330\250\331\204", QChar::DirR }, { "data48", "\330\250 1.2 \330\250", "\330\250 1.2 \330\250", QChar::DirR }, diff --git a/tests/auto/other/qcomplextext/tst_qcomplextext.cpp b/tests/auto/other/qcomplextext/tst_qcomplextext.cpp index c328776089..9ca61a69b4 100644 --- a/tests/auto/other/qcomplextext/tst_qcomplextext.cpp +++ b/tests/auto/other/qcomplextext/tst_qcomplextext.cpp @@ -66,6 +66,11 @@ void tst_QComplexText::bidiReorderString_data() << QString::fromUtf8( data->logical ) << QString::fromUtf8( data->visual ) << (int) data->basicDir; + + QTest::newRow( QByteArray(data->name) + " (doubled)" ) + << (QString::fromUtf8( data->logical ) + QChar(QChar::ParagraphSeparator) + QString::fromUtf8( data->logical )) + << (QString::fromUtf8( data->visual ) + QChar(QChar::ParagraphSeparator) + QString::fromUtf8( data->visual )) + << (int) data->basicDir; data++; } @@ -432,7 +437,7 @@ ushort unicodeForDirection(const QByteArray &direction) { "ET", 0x24 }, { "AN", 0x660 }, { "CS", 0x2c }, - { "B", QChar::ParagraphSeparator }, + { "B", '\n' }, { "S", 0x9 }, { "WS", 0x20 }, { "ON", 0x2a }, |