Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/gui/text/qglyphrun.cpp |
Switch to Source code | Preprocessed file |
Line | Source | Count | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | - | |||||||||||||
2 | - | |||||||||||||
3 | - | |||||||||||||
4 | - | |||||||||||||
5 | - | |||||||||||||
6 | QGlyphRun::QGlyphRun() : d(new QGlyphRunPrivate) | - | ||||||||||||
7 | { | - | ||||||||||||
8 | } never executed: end of block | 0 | ||||||||||||
9 | - | |||||||||||||
10 | - | |||||||||||||
11 | - | |||||||||||||
12 | - | |||||||||||||
13 | QGlyphRun::QGlyphRun(const QGlyphRun &other) | - | ||||||||||||
14 | { | - | ||||||||||||
15 | d = other.d; | - | ||||||||||||
16 | } never executed: end of block | 0 | ||||||||||||
17 | - | |||||||||||||
18 | - | |||||||||||||
19 | - | |||||||||||||
20 | - | |||||||||||||
21 | QGlyphRun::~QGlyphRun() | - | ||||||||||||
22 | { | - | ||||||||||||
23 | - | |||||||||||||
24 | } | - | ||||||||||||
25 | - | |||||||||||||
26 | - | |||||||||||||
27 | - | |||||||||||||
28 | - | |||||||||||||
29 | void QGlyphRun::detach() | - | ||||||||||||
30 | { | - | ||||||||||||
31 | if (d->ref.load() != 1
| 0 | ||||||||||||
32 | d.detach(); never executed: d.detach(); | 0 | ||||||||||||
33 | } never executed: end of block | 0 | ||||||||||||
34 | - | |||||||||||||
35 | - | |||||||||||||
36 | - | |||||||||||||
37 | - | |||||||||||||
38 | QGlyphRun &QGlyphRun::operator=(const QGlyphRun &other) | - | ||||||||||||
39 | { | - | ||||||||||||
40 | d = other.d; | - | ||||||||||||
41 | return never executed: *this;return *this; never executed: return *this; | 0 | ||||||||||||
42 | } | - | ||||||||||||
43 | bool QGlyphRun::operator==(const QGlyphRun &other) const | - | ||||||||||||
44 | { | - | ||||||||||||
45 | if (d == other.d
| 0 | ||||||||||||
46 | return never executed: true;return true; never executed: return true; | 0 | ||||||||||||
47 | - | |||||||||||||
48 | if ((
| 0 | ||||||||||||
49 | || (
| 0 | ||||||||||||
50 | return never executed: false;return false; never executed: return false; | 0 | ||||||||||||
51 | } | - | ||||||||||||
52 | - | |||||||||||||
53 | if (d->glyphIndexData != other.d->glyphIndexData
| 0 | ||||||||||||
54 | for (int i = 0; i < d->glyphIndexDataSize
| 0 | ||||||||||||
55 | if (d->glyphIndexData[i] != other.d->glyphIndexData[i]
| 0 | ||||||||||||
56 | return never executed: false;return false; never executed: return false; | 0 | ||||||||||||
57 | } never executed: end of block | 0 | ||||||||||||
58 | } never executed: end of block | 0 | ||||||||||||
59 | if (d->glyphPositionData != other.d->glyphPositionData
| 0 | ||||||||||||
60 | for (int i = 0; i < d->glyphPositionDataSize
| 0 | ||||||||||||
61 | if (d->glyphPositionData[i] != other.d->glyphPositionData[i]
| 0 | ||||||||||||
62 | return never executed: false;return false; never executed: return false; | 0 | ||||||||||||
63 | } never executed: end of block | 0 | ||||||||||||
64 | } never executed: end of block | 0 | ||||||||||||
65 | - | |||||||||||||
66 | return never executed: (d->flags == other.d->flags && d->rawFont == other.d->rawFont);return (d->flags == other.d->flags && d->rawFont == other.d->rawFont); never executed: return (d->flags == other.d->flags && d->rawFont == other.d->rawFont); | 0 | ||||||||||||
67 | } | - | ||||||||||||
68 | QRawFont QGlyphRun::rawFont() const | - | ||||||||||||
69 | { | - | ||||||||||||
70 | return never executed: d->rawFont;return d->rawFont; never executed: return d->rawFont; | 0 | ||||||||||||
71 | } | - | ||||||||||||
72 | - | |||||||||||||
73 | - | |||||||||||||
74 | - | |||||||||||||
75 | - | |||||||||||||
76 | - | |||||||||||||
77 | - | |||||||||||||
78 | - | |||||||||||||
79 | void QGlyphRun::setRawFont(const QRawFont &rawFont) | - | ||||||||||||
80 | { | - | ||||||||||||
81 | detach(); | - | ||||||||||||
82 | d->rawFont = rawFont; | - | ||||||||||||
83 | } never executed: end of block | 0 | ||||||||||||
84 | - | |||||||||||||
85 | - | |||||||||||||
86 | - | |||||||||||||
87 | - | |||||||||||||
88 | - | |||||||||||||
89 | - | |||||||||||||
90 | QVector<quint32> QGlyphRun::glyphIndexes() const | - | ||||||||||||
91 | { | - | ||||||||||||
92 | if (d->glyphIndexes.constData() == d->glyphIndexData
| 0 | ||||||||||||
93 | return never executed: d->glyphIndexes;return d->glyphIndexes; never executed: return d->glyphIndexes; | 0 | ||||||||||||
94 | } else { | - | ||||||||||||
95 | QVector<quint32> indexes(d->glyphIndexDataSize); | - | ||||||||||||
96 | memcpy(indexes.data(), d->glyphIndexData, d->glyphIndexDataSize * sizeof(quint32)); | - | ||||||||||||
97 | return never executed: indexes;return indexes; never executed: return indexes; | 0 | ||||||||||||
98 | } | - | ||||||||||||
99 | } | - | ||||||||||||
100 | - | |||||||||||||
101 | - | |||||||||||||
102 | - | |||||||||||||
103 | - | |||||||||||||
104 | - | |||||||||||||
105 | void QGlyphRun::setGlyphIndexes(const QVector<quint32> &glyphIndexes) | - | ||||||||||||
106 | { | - | ||||||||||||
107 | detach(); | - | ||||||||||||
108 | d->glyphIndexes = glyphIndexes; | - | ||||||||||||
109 | d->glyphIndexData = glyphIndexes.constData(); | - | ||||||||||||
110 | d->glyphIndexDataSize = glyphIndexes.size(); | - | ||||||||||||
111 | } never executed: end of block | 0 | ||||||||||||
112 | - | |||||||||||||
113 | - | |||||||||||||
114 | - | |||||||||||||
115 | - | |||||||||||||
116 | QVector<QPointF> QGlyphRun::positions() const | - | ||||||||||||
117 | { | - | ||||||||||||
118 | if (d->glyphPositions.constData() == d->glyphPositionData
| 0 | ||||||||||||
119 | return never executed: d->glyphPositions;return d->glyphPositions; never executed: return d->glyphPositions; | 0 | ||||||||||||
120 | } else { | - | ||||||||||||
121 | QVector<QPointF> glyphPositions(d->glyphPositionDataSize); | - | ||||||||||||
122 | memcpy(glyphPositions.data(), d->glyphPositionData, | - | ||||||||||||
123 | d->glyphPositionDataSize * sizeof(QPointF)); | - | ||||||||||||
124 | return never executed: glyphPositions;return glyphPositions; never executed: return glyphPositions; | 0 | ||||||||||||
125 | } | - | ||||||||||||
126 | } | - | ||||||||||||
127 | - | |||||||||||||
128 | - | |||||||||||||
129 | - | |||||||||||||
130 | - | |||||||||||||
131 | - | |||||||||||||
132 | void QGlyphRun::setPositions(const QVector<QPointF> &positions) | - | ||||||||||||
133 | { | - | ||||||||||||
134 | detach(); | - | ||||||||||||
135 | d->glyphPositions = positions; | - | ||||||||||||
136 | d->glyphPositionData = positions.constData(); | - | ||||||||||||
137 | d->glyphPositionDataSize = positions.size(); | - | ||||||||||||
138 | } never executed: end of block | 0 | ||||||||||||
139 | - | |||||||||||||
140 | - | |||||||||||||
141 | - | |||||||||||||
142 | - | |||||||||||||
143 | void QGlyphRun::clear() | - | ||||||||||||
144 | { | - | ||||||||||||
145 | detach(); | - | ||||||||||||
146 | d->rawFont = QRawFont(); | - | ||||||||||||
147 | d->flags = 0; | - | ||||||||||||
148 | - | |||||||||||||
149 | setPositions(QVector<QPointF>()); | - | ||||||||||||
150 | setGlyphIndexes(QVector<quint32>()); | - | ||||||||||||
151 | } never executed: end of block | 0 | ||||||||||||
152 | void QGlyphRun::setRawData(const quint32 *glyphIndexArray, const QPointF *glyphPositionArray, | - | ||||||||||||
153 | int size) | - | ||||||||||||
154 | { | - | ||||||||||||
155 | detach(); | - | ||||||||||||
156 | d->glyphIndexes.clear(); | - | ||||||||||||
157 | d->glyphPositions.clear(); | - | ||||||||||||
158 | - | |||||||||||||
159 | d->glyphIndexData = glyphIndexArray; | - | ||||||||||||
160 | d->glyphPositionData = glyphPositionArray; | - | ||||||||||||
161 | d->glyphIndexDataSize = d->glyphPositionDataSize = size; | - | ||||||||||||
162 | } never executed: end of block | 0 | ||||||||||||
163 | - | |||||||||||||
164 | - | |||||||||||||
165 | - | |||||||||||||
166 | - | |||||||||||||
167 | - | |||||||||||||
168 | - | |||||||||||||
169 | bool QGlyphRun::overline() const | - | ||||||||||||
170 | { | - | ||||||||||||
171 | return never executed: d->flags & Overline;return d->flags & Overline; never executed: return d->flags & Overline; | 0 | ||||||||||||
172 | } | - | ||||||||||||
173 | - | |||||||||||||
174 | - | |||||||||||||
175 | - | |||||||||||||
176 | - | |||||||||||||
177 | - | |||||||||||||
178 | - | |||||||||||||
179 | - | |||||||||||||
180 | void QGlyphRun::setOverline(bool overline) | - | ||||||||||||
181 | { | - | ||||||||||||
182 | setFlag(Overline, overline); | - | ||||||||||||
183 | } never executed: end of block | 0 | ||||||||||||
184 | - | |||||||||||||
185 | - | |||||||||||||
186 | - | |||||||||||||
187 | - | |||||||||||||
188 | - | |||||||||||||
189 | - | |||||||||||||
190 | bool QGlyphRun::underline() const | - | ||||||||||||
191 | { | - | ||||||||||||
192 | return never executed: d->flags & Underline;return d->flags & Underline; never executed: return d->flags & Underline; | 0 | ||||||||||||
193 | } | - | ||||||||||||
194 | - | |||||||||||||
195 | - | |||||||||||||
196 | - | |||||||||||||
197 | - | |||||||||||||
198 | - | |||||||||||||
199 | - | |||||||||||||
200 | - | |||||||||||||
201 | void QGlyphRun::setUnderline(bool underline) | - | ||||||||||||
202 | { | - | ||||||||||||
203 | setFlag(Underline, underline); | - | ||||||||||||
204 | } never executed: end of block | 0 | ||||||||||||
205 | - | |||||||||||||
206 | - | |||||||||||||
207 | - | |||||||||||||
208 | - | |||||||||||||
209 | - | |||||||||||||
210 | - | |||||||||||||
211 | bool QGlyphRun::strikeOut() const | - | ||||||||||||
212 | { | - | ||||||||||||
213 | return never executed: d->flags & StrikeOut;return d->flags & StrikeOut; never executed: return d->flags & StrikeOut; | 0 | ||||||||||||
214 | } | - | ||||||||||||
215 | - | |||||||||||||
216 | - | |||||||||||||
217 | - | |||||||||||||
218 | - | |||||||||||||
219 | - | |||||||||||||
220 | - | |||||||||||||
221 | - | |||||||||||||
222 | void QGlyphRun::setStrikeOut(bool strikeOut) | - | ||||||||||||
223 | { | - | ||||||||||||
224 | setFlag(StrikeOut, strikeOut); | - | ||||||||||||
225 | } never executed: end of block | 0 | ||||||||||||
226 | - | |||||||||||||
227 | - | |||||||||||||
228 | - | |||||||||||||
229 | - | |||||||||||||
230 | - | |||||||||||||
231 | - | |||||||||||||
232 | - | |||||||||||||
233 | bool QGlyphRun::isRightToLeft() const | - | ||||||||||||
234 | { | - | ||||||||||||
235 | return never executed: d->flags & RightToLeft;return d->flags & RightToLeft; never executed: return d->flags & RightToLeft; | 0 | ||||||||||||
236 | } | - | ||||||||||||
237 | void QGlyphRun::setRightToLeft(bool rightToLeft) | - | ||||||||||||
238 | { | - | ||||||||||||
239 | setFlag(RightToLeft, rightToLeft); | - | ||||||||||||
240 | } never executed: end of block | 0 | ||||||||||||
241 | - | |||||||||||||
242 | - | |||||||||||||
243 | - | |||||||||||||
244 | - | |||||||||||||
245 | - | |||||||||||||
246 | - | |||||||||||||
247 | - | |||||||||||||
248 | QGlyphRun::GlyphRunFlags QGlyphRun::flags() const | - | ||||||||||||
249 | { | - | ||||||||||||
250 | return never executed: d->flags;return d->flags; never executed: return d->flags; | 0 | ||||||||||||
251 | } | - | ||||||||||||
252 | - | |||||||||||||
253 | - | |||||||||||||
254 | - | |||||||||||||
255 | - | |||||||||||||
256 | - | |||||||||||||
257 | - | |||||||||||||
258 | - | |||||||||||||
259 | void QGlyphRun::setFlag(GlyphRunFlag flag, bool enabled) | - | ||||||||||||
260 | { | - | ||||||||||||
261 | if (d->flags.testFlag(flag) == enabled
| 0 | ||||||||||||
262 | return; never executed: return; | 0 | ||||||||||||
263 | - | |||||||||||||
264 | detach(); | - | ||||||||||||
265 | d->flags.setFlag(flag, enabled); | - | ||||||||||||
266 | } never executed: end of block | 0 | ||||||||||||
267 | - | |||||||||||||
268 | - | |||||||||||||
269 | - | |||||||||||||
270 | - | |||||||||||||
271 | - | |||||||||||||
272 | - | |||||||||||||
273 | - | |||||||||||||
274 | void QGlyphRun::setFlags(GlyphRunFlags flags) | - | ||||||||||||
275 | { | - | ||||||||||||
276 | if (d->flags == flags
| 0 | ||||||||||||
277 | return; never executed: return; | 0 | ||||||||||||
278 | - | |||||||||||||
279 | detach(); | - | ||||||||||||
280 | d->flags = flags; | - | ||||||||||||
281 | } never executed: end of block | 0 | ||||||||||||
282 | void QGlyphRun::setBoundingRect(const QRectF &boundingRect) | - | ||||||||||||
283 | { | - | ||||||||||||
284 | detach(); | - | ||||||||||||
285 | d->boundingRect = boundingRect; | - | ||||||||||||
286 | } never executed: end of block | 0 | ||||||||||||
287 | QRectF QGlyphRun::boundingRect() const | - | ||||||||||||
288 | { | - | ||||||||||||
289 | if (!d->boundingRect.isEmpty()
| 0 | ||||||||||||
290 | return never executed: d->boundingRect;return d->boundingRect; never executed: return d->boundingRect; | 0 | ||||||||||||
291 | - | |||||||||||||
292 | qreal minX, minY, maxX, maxY; | - | ||||||||||||
293 | minX = minY = maxX = maxY = 0; | - | ||||||||||||
294 | - | |||||||||||||
295 | for (int i = 0, n = qMin(d->glyphIndexDataSize, d->glyphPositionDataSize); i < n
| 0 | ||||||||||||
296 | QRectF glyphRect = d->rawFont.boundingRect(d->glyphIndexData[i]); | - | ||||||||||||
297 | glyphRect.translate(d->glyphPositionData[i]); | - | ||||||||||||
298 | - | |||||||||||||
299 | if (i == 0
| 0 | ||||||||||||
300 | minX = glyphRect.left(); | - | ||||||||||||
301 | minY = glyphRect.top(); | - | ||||||||||||
302 | maxX = glyphRect.right(); | - | ||||||||||||
303 | maxY = glyphRect.bottom(); | - | ||||||||||||
304 | } never executed: else {end of block | 0 | ||||||||||||
305 | minX = qMin(glyphRect.left(), minX); | - | ||||||||||||
306 | minY = qMin(glyphRect.top(), minY); | - | ||||||||||||
307 | maxX = qMax(glyphRect.right(),maxX); | - | ||||||||||||
308 | maxY = qMax(glyphRect.bottom(), maxY); | - | ||||||||||||
309 | } never executed: end of block | 0 | ||||||||||||
310 | } | - | ||||||||||||
311 | - | |||||||||||||
312 | return never executed: QRectF(QPointF(minX, minY), QPointF(maxX, maxY));return QRectF(QPointF(minX, minY), QPointF(maxX, maxY)); never executed: return QRectF(QPointF(minX, minY), QPointF(maxX, maxY)); | 0 | ||||||||||||
313 | } | - | ||||||||||||
314 | - | |||||||||||||
315 | - | |||||||||||||
316 | - | |||||||||||||
317 | - | |||||||||||||
318 | - | |||||||||||||
319 | - | |||||||||||||
320 | bool QGlyphRun::isEmpty() const | - | ||||||||||||
321 | { | - | ||||||||||||
322 | return never executed: d->glyphIndexDataSize == 0;return d->glyphIndexDataSize == 0; never executed: return d->glyphIndexDataSize == 0; | 0 | ||||||||||||
323 | } | - | ||||||||||||
324 | - | |||||||||||||
325 | - | |||||||||||||
Switch to Source code | Preprocessed file |