1 | /**************************************************************************** |
---|---|
2 | ** |
3 | ** Copyright (C) 2016 The Qt Company Ltd. |
4 | ** Contact: https://www.qt.io/licensing/ |
5 | ** |
6 | ** This file is part of the test suite of the Qt Toolkit. |
7 | ** |
8 | ** $QT_BEGIN_LICENSE:GPL-EXCEPT$ |
9 | ** Commercial License Usage |
10 | ** Licensees holding valid commercial Qt licenses may use this file in |
11 | ** accordance with the commercial license agreement provided with the |
12 | ** Software or, alternatively, in accordance with the terms contained in |
13 | ** a written agreement between you and The Qt Company. For licensing terms |
14 | ** and conditions see https://www.qt.io/terms-conditions. For further |
15 | ** information use the contact form at https://www.qt.io/contact-us. |
16 | ** |
17 | ** GNU General Public License Usage |
18 | ** Alternatively, this file may be used under the terms of the GNU |
19 | ** General Public License version 3 as published by the Free Software |
20 | ** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT |
21 | ** included in the packaging of this file. Please review the following |
22 | ** information to ensure the GNU General Public License requirements will |
23 | ** be met: https://www.gnu.org/licenses/gpl-3.0.html. |
24 | ** |
25 | ** $QT_END_LICENSE$ |
26 | ** |
27 | ****************************************************************************/ |
28 | struct LV { |
29 | const char *name; |
30 | const char *logical; |
31 | const char *visual; |
32 | int basicDir; |
33 | }; |
34 | |
35 | const LV logical_visual[] = { |
36 | { .name: "data0", .logical: "Hello", .visual: "Hello", .basicDir: QChar::DirL }, |
37 | { .name: "data1", .logical: "\327\251\327\234\327\225\327\235", .visual: "\327\235\327\225\327\234\327\251", .basicDir: QChar::DirR }, |
38 | { .name: "data2", .logical: "Hello \327\251\327\234\327\225\327\235", .visual: "Hello \327\235\327\225\327\234\327\251", .basicDir: QChar::DirL }, |
39 | { .name: "data3", .logical: "car is \327\236\327\233\327\225\327\240\327\231\327\252 \327\220\327\225\327\230\327\225 in hebrew", .visual: "car is \327\225\327\230\327\225\327\220 \327\252\327\231\327\240\327\225\327\233\327\236 in hebrew", .basicDir: QChar::DirL }, |
40 | { .name: "data4", .logical: "\327\236\327\233\327\225\327\240\327\231\327\252 \327\224\327\231\327\220 the car \327\221\327\251\327\244\327\224 \327\224\327\220\327\240\327\222\327\234\327\231\327\252", .visual: "\327\252\327\231\327\234\327\222\327\240\327\220\327\224 \327\224\327\244\327\251\327\221 the car \327\220\327\231\327\224 \327\252\327\231\327\240\327\225\327\233\327\236", .basicDir: QChar::DirR }, |
41 | { .name: "data5", .logical: "he said \"\327\226\327\224 \327\251\327\225\327\225\327\224 123, 456, \327\221\327\241\327\223\327\250\" ", .visual: "he said \"\327\250\327\223\327\241\327\221 ,456 ,123 \327\224\327\225\327\225\327\251 \327\224\327\226\" ", .basicDir: QChar::DirL }, |
42 | { .name: "data6", .logical: "he said \"\327\226\327\224 \327\251\327\225\327\225\327\224 (123, 456), \327\221\327\241\327\223\327\250\"", .visual: "he said \"\327\250\327\223\327\241\327\221 ,(456 ,123) \327\224\327\225\327\225\327\251 \327\224\327\226\"", .basicDir: QChar::DirL }, |
43 | { .name: "data7", .logical: "he said \"\327\226\327\224 \327\251\327\225\327\225\327\224 123,456, \327\221\327\241\327\223\327\250\"", .visual: "he said \"\327\250\327\223\327\241\327\221 ,123,456 \327\224\327\225\327\225\327\251 \327\224\327\226\"", .basicDir: QChar::DirL }, |
44 | { .name: "data8", .logical: "he said \"\327\226\327\224 \327\251\327\225\327\225\327\224 ,(123,456) \327\221\327\241\327\223\327\250\"", .visual: "he said \"\327\250\327\223\327\241\327\221 (123,456), \327\224\327\225\327\225\327\251 \327\224\327\226\"", .basicDir: QChar::DirL }, |
45 | { .name: "data9", .logical: "\327\224\327\225\327\220 \327\220\327\236\327\250 \"it is 123, 456, ok\"", .visual: "\"it is 123, 456, ok\" \327\250\327\236\327\220 \327\220\327\225\327\224", .basicDir: QChar::DirR }, |
46 | { .name: "data10", .logical: "<\327\233123>shalom</\327\233123>", .visual: "<123\327\233/>shalom<123\327\233>", .basicDir: QChar::DirR }, |
47 | { .name: "data11", .logical: "<h123>\327\251\327\234\327\225\327\235</h123>", .visual: "<h123>\327\235\327\225\327\234\327\251</h123>", .basicDir: QChar::DirL }, |
48 | { .name: "data12", .logical: "\327\224\327\225\327\220 \327\220\327\236\327\250 \"it is a car!\" \327\225\327\220\327\226 \327\250\327\245", .visual: "\327\245\327\250 \327\226\327\220\327\225 \"!it is a car\" \327\250\327\236\327\220 \327\220\327\225\327\224", .basicDir: QChar::DirR }, |
49 | { .name: "data13", .logical: "\327\224\327\225\327\220 \327\220\327\236\327\250 \"it is a car!x\" \327\225\327\220\327\226 \327\250\327\245", .visual: "\327\245\327\250 \327\226\327\220\327\225 \"it is a car!x\" \327\250\327\236\327\220 \327\220\327\225\327\224", .basicDir: QChar::DirR }, |
50 | { .name: "data14", .logical: "-2 \327\236\327\242\327\234\327\225\327\252 \327\226\327\224 \327\247\327\250", .visual: "\327\250\327\247 \327\224\327\226 \327\252\327\225\327\234\327\242\327\236 2-", .basicDir: QChar::DirR }, |
51 | { .name: "data15", .logical: "-10% \327\251\327\231\327\240\327\225\327\231", .visual: "\327\231\327\225\327\240\327\231\327\251 10%-", .basicDir: QChar::DirR }, |
52 | { .name: "data16", .logical: "\327\224\327\230\327\225\327\225\327\227 \327\224\327\231\327\240\327\225 2.5..5", .visual: "5..2.5 \327\225\327\240\327\231\327\224 \327\227\327\225\327\225\327\230\327\224", .basicDir: QChar::DirR }, |
53 | { .name: "data17", .logical: "he said \"\327\226\327\225 \327\236\327\233\327\225\327\240\327\231\327\252!\"", .visual: "he said \"\327\252\327\231\327\240\327\225\327\233\327\236 \327\225\327\226!\"", .basicDir: QChar::DirL }, |
54 | { .name: "data18", .logical: "he said \"\327\226\327\225 \327\236\327\233\327\225\327\240\327\231\327\252!\327\251\"", .visual: "he said \"\327\251!\327\252\327\231\327\240\327\225\327\233\327\236 \327\225\327\226\"", .basicDir: QChar::DirL }, |
55 | { .name: "data19", .logical: "(\327\240\327\231\327\241\327\225\327\231) abc", .visual: "abc (\327\231\327\225\327\241\327\231\327\240)", .basicDir: QChar::DirR }, |
56 | { .name: "data20", .logical: "abc (\327\240\327\231\327\241\327\225\327\231)", .visual: "abc (\327\231\327\225\327\241\327\231\327\240)", .basicDir: QChar::DirL }, |
57 | { .name: "data21", .logical: "\327\240\327\231\327\241\327\225\327\231 23 \327\231\327\227\327\231\327\223 abc", .visual: "abc \327\223\327\231\327\227\327\231 23 \327\231\327\225\327\241\327\231\327\240", .basicDir: QChar::DirR }, |
58 | { .name: "data22", .logical: "#@$ \327\240\327\231\327\241\327\225\327\231", .visual: "\327\231\327\225\327\241\327\231\327\240 $@#", .basicDir: QChar::DirR }, |
59 | { .name: "data23", .logical: "\327\240\327\231\327\241\327\225\327\231 ~~~23%%% \327\231\327\227\327\231\327\223 abc ", .visual: " abc \327\223\327\231\327\227\327\231 23%%%~~~ \327\231\327\225\327\241\327\231\327\240", .basicDir: QChar::DirR }, |
60 | { .name: "data24", .logical: "\327\240\327\231\327\241\327\225\327\231 abc ~~~23%%% \327\231\327\227\327\231\327\223 abc", .visual: "abc \327\223\327\231\327\227\327\231 abc ~~~23%%% \327\231\327\225\327\241\327\231\327\240", .basicDir: QChar::DirR }, |
61 | { .name: "data25", .logical: "\327\240\327\231\327\241\327\225\327\231 abc@23@cde \327\231\327\227\327\231\327\223", .visual: "\327\223\327\231\327\227\327\231 abc@23@cde \327\231\327\225\327\241\327\231\327\240", .basicDir: QChar::DirR }, |
62 | { .name: "data26", .logical: "\327\240\327\231\327\241\327\225\327\231 abc 23 cde \327\231\327\227\327\231\327\223", .visual: "\327\223\327\231\327\227\327\231 abc 23 cde \327\231\327\225\327\241\327\231\327\240", .basicDir: QChar::DirR }, |
63 | { .name: "data27", .logical: "\327\240\327\231\327\241\327\225\327\231 abc 23 \327\231\327\227\327\231\327\223 cde", .visual: "cde \327\223\327\231\327\227\327\231 abc 23 \327\231\327\225\327\241\327\231\327\240", .basicDir: QChar::DirR }, |
64 | { .name: "data28", .logical: "\327\222a 2 \327\251", .visual: "\327\251 a 2\327\222", .basicDir: QChar::DirR }, |
65 | { .name: "data29", .logical: "\327\244\327\252\327\225\327\250 1*5 1-5 1/5 1+5", .visual: "1+5 1/5 1-5 5*1 \327\250\327\225\327\252\327\244", .basicDir: QChar::DirR }, |
66 | { .name: "data30", .logical: "\330\272 1*5 1-5 1/5 1+5", .visual: "5+1 1/5 5-1 5*1 \330\272", .basicDir: QChar::DirR }, |
67 | { .name: "data31", .logical: "\330\250 \333\261\333\262.\333\263", .visual: "\333\261\333\262.\333\263 \330\250", .basicDir: QChar::DirR }, |
68 | { .name: "data32", .logical: "\330\250 12.3", .visual: "12.3 \330\250", .basicDir: QChar::DirR }, |
69 | { .name: "data33", .logical: "\330\250 1.23", .visual: "1.23 \330\250", .basicDir: QChar::DirR }, |
70 | { .name: "data34", .logical: "\331\276 \333\261.\333\262\333\263", .visual: "\333\261.\333\262\333\263 \331\276", .basicDir: QChar::DirR }, |
71 | { .name: "data35", .logical: "\331\276\333\261.\333\262\333\263", .visual: "\333\261.\333\262\333\263\331\276", .basicDir: QChar::DirR }, |
72 | { .name: "data36", .logical: "1) \327\251", .visual: "\327\251 (1", .basicDir: QChar::DirR }, |
73 | { .name: "data37", .logical: "1) \327\251", .visual: "1) \327\251", .basicDir: QChar::DirL }, |
74 | { .name: "data38", .logical: "\327\224-w3c", .visual: "w3c-\327\224", .basicDir: QChar::DirR }, |
75 | { .name: "data39", .logical: "\327\224-w3c", .visual: "\327\224-w3c", .basicDir: QChar::DirL }, |
76 | { .name: "data40", .logical: "17:25, foo", .visual: "17:25, foo", .basicDir: QChar::DirL }, |
77 | { .name: "data41", .logical: "5, foo", .visual: "foo ,5", .basicDir: QChar::DirR }, |
78 | { .name: "data42", .logical: "foo\nfoo", .visual: "foo\nfoo", .basicDir: QChar::DirL }, |
79 | { .name: "data43", .logical: "\327\251\327\234\327\225\327\235\n\327\251\327\234\327\225\327\235", .visual: "\327\235\327\225\327\234\327\251\n\327\235\327\225\327\234\327\251", .basicDir: QChar::DirR }, |
80 | { .name: "data44", .logical: "foo\n\327\251\327\234\327\225\327\235", .visual: "foo\n\327\235\327\225\327\234\327\251", .basicDir: QChar::DirL }, |
81 | { .name: "data45", .logical: "\327\251\327\234\327\225\327\235\nfoo", .visual: "foo\n\327\235\327\225\327\234\327\251", .basicDir: QChar::DirR }, |
82 | { .name: "data46", .logical: "\330\250 1.23 \330\250", .visual: "\330\250 1.23 \330\250", .basicDir: QChar::DirR }, |
83 | { .name: "data47", .logical: "\331\204\330\250 1.23 \331\202\330\250", .visual: "\330\250\331\202 1.23 \330\250\331\204", .basicDir: QChar::DirR }, |
84 | { .name: "data48", .logical: "\330\250 1.2 \330\250", .visual: "\330\250 1.2 \330\250", .basicDir: QChar::DirR }, |
85 | { .name: "data49", .logical: "\331\204\330\250 1.2 \331\202\330\250", .visual: "\330\250\331\202 1.2 \330\250\331\204", .basicDir: QChar::DirR }, |
86 | { .name: "data50", .logical: "a\331\204\330\250 1.2 \331\202\330\250", .visual: "a\330\250\331\202 1.2 \330\250\331\204", .basicDir: QChar::DirL }, |
87 | |
88 | { .name: "data51", .logical: "ab(\327\240\327\231)cd", .visual: "ab(\327\231\327\240)cd", .basicDir: QChar::DirL }, |
89 | { .name: "data52", .logical: "ab(\327\240\327\231)cd", .visual: "cd(\327\231\327\240)ab", .basicDir: QChar::DirR }, |
90 | { .name: "data53", .logical: "a(\327\231)c", .visual: "a(\327\231)c", .basicDir: QChar::DirL }, |
91 | { .name: "data54", .logical: "a(\327\231)c", .visual: "c(\327\231)a", .basicDir: QChar::DirR }, |
92 | { .name: "data55", .logical: "\"[\327\220]\"", .visual: "\"[\327\220]\"", .basicDir: QChar::DirR }, |
93 | { .name: "data56", .logical: "\"[\327\220]\"", .visual: "\"[\327\220]\"", .basicDir: QChar::DirL }, |
94 | { .name: "data57", .logical: "\331\204\330\250 \331\202\330\250", .visual: "\330\250\331\202 \330\250\331\204", .basicDir: QChar::DirR }, |
95 | { .name: "data58", .logical: "\331\204\330\250 \331\202\330\250", .visual: "\330\250\331\202 \330\250\331\204", .basicDir: QChar::DirL }, |
96 | { .name: "data59", .logical: "3layout", .visual: "3layout", .basicDir: QChar::DirL }, |
97 | { .name: "data60", .logical: "3layout", .visual: "3layout", .basicDir: QChar::DirR }, |
98 | { .name: "data61", .logical: "3l", .visual: "3l", .basicDir: QChar::DirR }, |
99 | { .name: "data62", .logical: "3la", .visual: "3la", .basicDir: QChar::DirR }, |
100 | { .name: "data63", .logical: "3lay", .visual: "3lay", .basicDir: QChar::DirR }, |
101 | |
102 | // explicit levels |
103 | // LRE: \342\200\252 |
104 | // RLE: \342\200\253 |
105 | // PDF: \342\200\254 |
106 | // LRO: \342\200\255 |
107 | // RLO: \342\200\256 |
108 | |
109 | { .name: "override1", .logical: "\342\200\256hello\342\200\254", .visual: "\342\200\256olleh\342\200\254", .basicDir: QChar::DirL }, |
110 | { .name: "override2", .logical: "\342\200\255hello\342\200\254", .visual: "\342\200\255hello\342\200\254", .basicDir: QChar::DirL }, |
111 | { .name: "override3", .logical: "\342\200\255\327\251\327\234\327\225\327\235\342\200\254", .visual: "\342\200\255\327\251\327\234\327\225\327\235\342\200\254", .basicDir: QChar::DirL }, |
112 | { .name: "override4", .logical: "\342\200\256\327\251\327\234\327\225\327\235\342\200\254", .visual: "\342\200\256\327\235\327\225\327\234\327\251\342\200\254", .basicDir: QChar::DirL }, |
113 | { .name: "override5", .logical: "\342\200\256hello\342\200\254", .visual: "\342\200\254olleh\342\200\256", .basicDir: QChar::DirR }, |
114 | { .name: "override6", .logical: "\342\200\255hello\342\200\254", .visual: "\342\200\254hello\342\200\255", .basicDir: QChar::DirR }, |
115 | { .name: "override7", .logical: "\342\200\255\327\251\327\234\327\225\327\235\342\200\254", .visual: "\342\200\254\327\251\327\234\327\225\327\235\342\200\255", .basicDir: QChar::DirR }, |
116 | { .name: "override8", .logical: "\342\200\256\327\251\327\234\327\225\327\235\342\200\254", .visual: "\342\200\254\327\235\327\225\327\234\327\251\342\200\256", .basicDir: QChar::DirR }, |
117 | |
118 | { .name: "override9", .logical: "\327\224\342\200\255\327\251\327\234\342\200\256hello\342\200\254\327\225\327\235\342\200\254", |
119 | .visual: "\327\251\327\234\342\200\256olleh\342\200\254\327\225\327\235\342\200\255\327\224\342\200\254", .basicDir: QChar::DirL }, |
120 | { .name: "override10", .logical: "\327\224\342\200\255\327\251\327\234\342\200\256hello\342\200\254\327\225\327\235\342\200\254", |
121 | .visual: "\342\200\254\327\251\327\234\342\200\256olleh\342\200\254\327\225\327\235\342\200\255\327\224", .basicDir: QChar::DirR }, |
122 | |
123 | |
124 | { .name: "embed1", .logical: "\342\200\252hello\342\200\254", .visual: "\342\200\252hello\342\200\254", .basicDir: QChar::DirL }, |
125 | { .name: "embed2", .logical: "\342\200\253hello\342\200\254", .visual: "\342\200\253hello\342\200\254", .basicDir: QChar::DirL }, |
126 | { .name: "embed3", .logical: "\342\200\252hello\342\200\254", .visual: "\342\200\254hello\342\200\252", .basicDir: QChar::DirR }, |
127 | { .name: "embed4", .logical: "\342\200\253hello\342\200\254", .visual: "\342\200\254hello\342\200\253", .basicDir: QChar::DirR }, |
128 | { .name: "embed5", .logical: "\342\200\252\327\251\327\234\327\225\327\235\342\200\254", .visual: "\342\200\252\327\235\327\225\327\234\327\251\342\200\254", .basicDir: QChar::DirL }, |
129 | { .name: "embed6", .logical: "\342\200\253\327\251\327\234\327\225\327\235\342\200\254", .visual: "\342\200\253\327\235\327\225\327\234\327\251\342\200\254", .basicDir: QChar::DirL }, |
130 | { .name: "embed7", .logical: "\342\200\252\327\251\327\234\327\225\327\235\342\200\254", .visual: "\342\200\254\327\235\327\225\327\234\327\251\342\200\252", .basicDir: QChar::DirR }, |
131 | { .name: "embed8", .logical: "\342\200\253\327\251\327\234\327\225\327\235\342\200\254", .visual: "\342\200\254\327\235\327\225\327\234\327\251\342\200\253", .basicDir: QChar::DirR }, |
132 | |
133 | { .name: "embed9", .logical: "\342\200\252x \327\251\327\234\327\225\327\235 y\342\200\254", .visual: "\342\200\252x \327\235\327\225\327\234\327\251 y\342\200\254", .basicDir: QChar::DirL }, |
134 | { .name: "embed10", .logical: "\342\200\253x \327\251\327\234\327\225\327\235 y\342\200\254", .visual: "\342\200\253y \327\235\327\225\327\234\327\251 x\342\200\254", .basicDir: QChar::DirL }, |
135 | { .name: "embed11", .logical: "\342\200\252x \327\251\327\234\327\225\327\235 y\342\200\254", .visual: "\342\200\254x \327\235\327\225\327\234\327\251 y\342\200\252", .basicDir: QChar::DirR }, |
136 | { .name: "embed12", .logical: "\342\200\253x \327\251\327\234\327\225\327\235 y\342\200\254", .visual: "\342\200\254y \327\235\327\225\327\234\327\251 x\342\200\253", .basicDir: QChar::DirR }, |
137 | { .name: "zwsp", .logical: "+0\342\200\213f-1", .visual: "+0\342\200\213f-1", .basicDir: QChar::DirL }, |
138 | |
139 | // Alef: \xD7\x90 |
140 | |
141 | { .name: "bracketpair_1_ltr", .logical: "\xD7\x90(\xD7\x90[&a]!)a", .visual: "\xD7\x90(\xD7\x90[&a]!)a", .basicDir: QChar::DirL }, |
142 | { .name: "bracketpair_1_rtl", .logical: "\xD7\x90(\xD7\x90[&a]!)a", .visual: "a(![a&]\xD7\x90)\xD7\x90", .basicDir: QChar::DirR }, |
143 | |
144 | { .name: "bracketpair_2_ltr", .logical: "a(\xD7\x90[&a]!)\xD7\x90", .visual: "a(\xD7\x90[&a]!)\xD7\x90", .basicDir: QChar::DirL }, |
145 | { .name: "bracketpair_2_rtl", .logical: "a(\xD7\x90[&a]!)\xD7\x90", .visual: "\xD7\x90(![a&]\xD7\x90)a", .basicDir: QChar::DirR }, |
146 | |
147 | { .name: "bracketpair_3_ltr", .logical: "\xD7\x90(a[&\xD7\x90]!)a", .visual: "\xD7\x90(a[&\xD7\x90]!)a", .basicDir: QChar::DirL }, |
148 | { .name: "bracketpair_3_rtl", .logical: "\xD7\x90(a[&\xD7\x90]!)a", .visual: "a(![\xD7\x90&]a)\xD7\x90", .basicDir: QChar::DirR }, |
149 | |
150 | { .name: "bracketpair_4_ltr", .logical: "a (a \xD7\x90) \xD7\x90", .visual: "a (a \xD7\x90) \xD7\x90", .basicDir: QChar::DirL }, |
151 | { .name: "bracketpair_4_rtl", .logical: "a (a \xD7\x90) \xD7\x90", .visual: "\xD7\x90 (\xD7\x90 a) a", .basicDir: QChar::DirR }, |
152 | |
153 | { .name: "bracketpair_5_ltr", .logical: "\xD7\x90 (a \xD7\x90) a", .visual: "\xD7\x90 (a \xD7\x90) a", .basicDir: QChar::DirL }, |
154 | { .name: "bracketpair_5_rtl", .logical: "\xD7\x90 (a \xD7\x90) a", .visual: "a (\xD7\x90 a) \xD7\x90", .basicDir: QChar::DirR }, |
155 | |
156 | { .name: "bracketpair_6_ltr", .logical: "a (\xD7\x90 a) \xD7\x90", .visual: "a (\xD7\x90 a) \xD7\x90", .basicDir: QChar::DirL }, |
157 | { .name: "bracketpair_6_rtl", .logical: "a (\xD7\x90 a) \xD7\x90", .visual: "\xD7\x90 (a \xD7\x90) a", .basicDir: QChar::DirR }, |
158 | |
159 | { .name: "bracketpair_7_ltr", .logical: "\xD7\x90\xD7\x90 book(s)", .visual: "\xD7\x90\xD7\x90 book(s)", .basicDir: QChar::DirL }, |
160 | { .name: "bracketpair_7_rtl", .logical: "\xD7\x90\xD7\x90 book(s)", .visual: "book(s) \xD7\x90\xD7\x90", .basicDir: QChar::DirR }, |
161 | |
162 | { .name: "bracketpair_8_ltr", .logical: "a \xD7\x90\xD7\x90(\xD7\x90)", .visual: "a (\xD7\x90)\xD7\x90\xD7\x90", .basicDir: QChar::DirL }, |
163 | { .name: "bracketpair_8_rtl", .logical: "a \xD7\x90\xD7\x90(\xD7\x90)", .visual: "(\xD7\x90)\xD7\x90\xD7\x90 a", .basicDir: QChar::DirR }, |
164 | |
165 | |
166 | { .name: 0, .logical: 0, .visual: 0, .basicDir: QChar::DirON } |
167 | }; |
168 |
Definitions
Learn Advanced QML with KDAB
Find out more