OpenCoverage

qpicture.cpp

Absolute File Name:/home/qt/qt5_coco/qt5/qtbase/src/gui/image/qpicture.cpp
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3-
4-
5-
6-
7-
8-
9-
10void qt_format_text(const QFont &fnt, const QRectF &_r,-
11 int tf, const QTextOption *opt, const QString& str, QRectF *brect,-
12 int tabstops, int *, int tabarraylen,-
13 QPainter *painter);-
14const char *qt_mfhdr_tag = "QPIC";-
15static const quint16 mfhdr_maj = QDataStream::Qt_DefaultCompiledVersion;-
16static const quint16 mfhdr_min = 0;-
17QPicture::QPicture(int formatVersion)-
18 : QPaintDevice(),-
19 d_ptr(new QPicturePrivate)-
20{-
21 QPicturePrivate * const d = d_func();-
22-
23 if (formatVersion == 0
formatVersion == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
24 QMessageLogger(__FILE__, 144, __PRETTY_FUNCTION__).warning("QPicture: invalid format version 0");
never executed: QMessageLogger(__FILE__, 144, __PRETTY_FUNCTION__).warning("QPicture: invalid format version 0");
0
25-
26-
27 if (formatVersion > 0
formatVersion > 0Description
TRUEnever evaluated
FALSEnever evaluated
&& formatVersion != (int)mfhdr_maj
formatVersion ...(int)mfhdr_majDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
28 d->formatMajor = formatVersion;-
29 d->formatMinor = 0;-
30 d->formatOk = false;-
31 }
never executed: end of block
else {
0
32 d->resetFormat();-
33 }
never executed: end of block
0
34}-
35-
36-
37-
38-
39-
40-
41-
42QPicture::QPicture(const QPicture &pic)-
43 : QPaintDevice(), d_ptr(pic.d_ptr)-
44{-
45}
never executed: end of block
0
46-
47-
48QPicture::QPicture(QPicturePrivate &dptr)-
49 : QPaintDevice(),-
50 d_ptr(&dptr)-
51{-
52}
never executed: end of block
0
53-
54-
55-
56-
57QPicture::~QPicture()-
58{-
59}-
60-
61-
62-
63-
64int QPicture::devType() const-
65{-
66 return
never executed: return QInternal::Picture;
QInternal::Picture;
never executed: return QInternal::Picture;
0
67}-
68bool QPicture::isNull() const-
69{-
70 return
never executed: return d_func()->pictb.buffer().isNull();
d_func()->pictb.buffer().isNull();
never executed: return d_func()->pictb.buffer().isNull();
0
71}-
72-
73uint QPicture::size() const-
74{-
75 return
never executed: return d_func()->pictb.buffer().size();
d_func()->pictb.buffer().size();
never executed: return d_func()->pictb.buffer().size();
0
76}-
77-
78const char* QPicture::data() const-
79{-
80 return
never executed: return d_func()->pictb.buffer();
d_func()->pictb.buffer();
never executed: return d_func()->pictb.buffer();
0
81}-
82-
83void QPicture::detach()-
84{-
85 d_ptr.detach();-
86}
never executed: end of block
0
87-
88bool QPicture::isDetached() const-
89{-
90 return
never executed: return d_func()->ref.load() == 1;
d_func()->ref.load() == 1;
never executed: return d_func()->ref.load() == 1;
0
91}-
92void QPicture::setData(const char* data, uint size)-
93{-
94 detach();-
95 d_func()->pictb.setData(data, size);-
96 d_func()->resetFormat();-
97}
never executed: end of block
0
98bool QPicture::load(const QString &fileName, const char *format)-
99{-
100 QFile f(fileName);-
101 if (!f.open(QIODevice::ReadOnly)
!f.open(QIODevice::ReadOnly)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
102 operator=(QPicture());-
103 return
never executed: return false;
false;
never executed: return false;
0
104 }-
105 return
never executed: return load(&f, format);
load(&f, format);
never executed: return load(&f, format);
0
106}-
107-
108-
109-
110-
111-
112-
113-
114bool QPicture::load(QIODevice *dev, const char *format)-
115{-
116 if(format
formatDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
117-
118 QPictureIO io(dev, format);-
119 if (io.read()
io.read()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
120 operator=(io.picture());-
121 return
never executed: return true;
true;
never executed: return true;
0
122 }-
123-
124 QMessageLogger(__FILE__, 291, __PRETTY_FUNCTION__).warning("QPicture::load: No such picture format: %s", format);-
125 operator=(QPicture());-
126 return
never executed: return false;
false;
never executed: return false;
0
127 }-
128-
129 detach();-
130 QByteArray a = dev->readAll();-
131-
132 d_func()->pictb.setData(a);-
133 return
never executed: return d_func()->checkFormat();
d_func()->checkFormat();
never executed: return d_func()->checkFormat();
0
134}-
135bool QPicture::save(const QString &fileName, const char *format)-
136{-
137 if (paintingActive()
paintingActive()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
138 QMessageLogger(__FILE__, 316, __PRETTY_FUNCTION__).warning("QPicture::save: still being painted on. "-
139 "Call QPainter::end() first");-
140 return
never executed: return false;
false;
never executed: return false;
0
141 }-
142-
143-
144 if(format
formatDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
145-
146 QPictureIO io(fileName, format);-
147 bool result = io.write();-
148 if (result
resultDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
149 operator=(io.picture());-
150 }
never executed: end of block
else if (format
formatDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
151-
152-
153-
154 {-
155 QMessageLogger(__FILE__, 333, __PRETTY_FUNCTION__).warning("QPicture::save: No such picture format: %s", format);-
156 }
never executed: end of block
0
157 return
never executed: return result;
result;
never executed: return result;
0
158 }-
159-
160 QFile f(fileName);-
161 if (!f.open(QIODevice::WriteOnly)
!f.open(QIODevice::WriteOnly)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
162 return
never executed: return false;
false;
never executed: return false;
0
163 return
never executed: return save(&f, format);
save(&f, format);
never executed: return save(&f, format);
0
164}-
165-
166-
167-
168-
169-
170-
171-
172bool QPicture::save(QIODevice *dev, const char *format)-
173{-
174 if (paintingActive()
paintingActive()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
175 QMessageLogger(__FILE__, 353, __PRETTY_FUNCTION__).warning("QPicture::save: still being painted on. "-
176 "Call QPainter::end() first");-
177 return
never executed: return false;
false;
never executed: return false;
0
178 }-
179-
180 if(format
formatDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
181-
182 QPictureIO io(dev, format);-
183 bool result = io.write();-
184 if (result
resultDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
185 operator=(io.picture());-
186 }
never executed: end of block
else if (format
formatDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
187-
188-
189-
190 {-
191 QMessageLogger(__FILE__, 369, __PRETTY_FUNCTION__).warning("QPicture::save: No such picture format: %s", format);-
192 }
never executed: end of block
0
193 return
never executed: return result;
result;
never executed: return result;
0
194 }-
195-
196 dev->write(d_func()->pictb.buffer(), d_func()->pictb.buffer().size());-
197 return
never executed: return true;
true;
never executed: return true;
0
198}-
199-
200-
201-
202-
203-
204-
205QRect QPicture::boundingRect() const-
206{-
207 const QPicturePrivate * const d = d_func();-
208-
209 if (!d->override_rect.isEmpty()
!d->override_rect.isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
210 return
never executed: return d->override_rect;
d->override_rect;
never executed: return d->override_rect;
0
211-
212 if (!d->formatOk
!d->formatOkDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
213 d_ptr->checkFormat();
never executed: d_ptr->checkFormat();
0
214-
215 return
never executed: return d->brect;
d->brect;
never executed: return d->brect;
0
216}-
217-
218-
219-
220-
221-
222-
223void QPicture::setBoundingRect(const QRect &r)-
224{-
225 d_func()->override_rect = r;-
226}
never executed: end of block
0
227bool QPicture::play(QPainter *painter)-
228{-
229 QPicturePrivate * const d = d_func();-
230-
231 if (d->pictb.size() == 0
d->pictb.size() == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
232 return
never executed: return true;
true;
never executed: return true;
0
233-
234 if (!d->formatOk
!d->formatOkDescription
TRUEnever evaluated
FALSEnever evaluated
&& !d->checkFormat()
!d->checkFormat()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
235 return
never executed: return false;
false;
never executed: return false;
0
236-
237 d->pictb.open(QIODevice::ReadOnly);-
238 QDataStream s;-
239 s.setDevice(&d->pictb);-
240 s.device()->seek(10);-
241 s.setVersion(d->formatMajor == 4 ? 3 : d->formatMajor);-
242-
243 quint8 c, clen;-
244 quint32 nrecords;-
245 s >> c >> clen;-
246 ((!(c == QPicturePrivate::PdcBegin)) ? qt_assert("c == QPicturePrivate::PdcBegin",__FILE__,433) : qt_noop());-
247-
248 if (d->formatMajor >= 4
d->formatMajor >= 4Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
249 qint32 dummy;-
250 s >> dummy >> dummy >> dummy >> dummy;-
251 }
never executed: end of block
0
252 s >> nrecords;-
253 if (!exec(painter, s, nrecords)
!exec(painter, s, nrecords)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
254 QMessageLogger(__FILE__, 441, __PRETTY_FUNCTION__).warning("QPicture::play: Format error");-
255 d->pictb.close();-
256 return
never executed: return false;
false;
never executed: return false;
0
257 }-
258 d->pictb.close();-
259 return
never executed: return true;
true;
never executed: return true;
0
260}-
261-
262-
263-
264-
265-
266class QFakeDevice : public QPaintDevice-
267{-
268public:-
269 QFakeDevice() { dpi_x = qt_defaultDpiX(); dpi_y = qt_defaultDpiY(); }
never executed: end of block
0
270 void setDpiX(int dpi) { dpi_x = dpi; }
never executed: end of block
0
271 void setDpiY(int dpi) { dpi_y = dpi; }
never executed: end of block
0
272 QPaintEngine *paintEngine() const override { return
never executed: return 0;
0;
never executed: return 0;
}
0
273 int metric(PaintDeviceMetric m) const override-
274 {-
275 switch(m) {-
276 case
never executed: case PdmPhysicalDpiX:
PdmPhysicalDpiX:
never executed: case PdmPhysicalDpiX:
0
277 case
never executed: case PdmDpiX:
PdmDpiX:
never executed: case PdmDpiX:
0
278 return
never executed: return dpi_x;
dpi_x;
never executed: return dpi_x;
0
279 case
never executed: case PdmPhysicalDpiY:
PdmPhysicalDpiY:
never executed: case PdmPhysicalDpiY:
0
280 case
never executed: case PdmDpiY:
PdmDpiY:
never executed: case PdmDpiY:
0
281 return
never executed: return dpi_y;
dpi_y;
never executed: return dpi_y;
0
282 default
never executed: default:
:
never executed: default:
0
283 return
never executed: return QPaintDevice::metric(m);
QPaintDevice::metric(m);
never executed: return QPaintDevice::metric(m);
0
284 }-
285 }-
286-
287private:-
288 int dpi_x;-
289 int dpi_y;-
290};-
291-
292-
293-
294-
295-
296-
297-
298bool QPicture::exec(QPainter *painter, QDataStream &s, int nrecords)-
299{-
300 QPicturePrivate * const d = d_func();-
301-
302 int strm_pos;-
303-
304 quint8 c;-
305 quint8 tiny_len;-
306 qint32 len;-
307 qint16 i_16, i1_16, i2_16;-
308 qint8 i_8;-
309 quint32 ul;-
310 double dbl;-
311 bool bl;-
312 QByteArray str1;-
313 QString str;-
314 QPointF p, p1, p2;-
315 QPoint ip, ip1, ip2;-
316 QRect ir;-
317 QRectF r;-
318 QPolygonF a;-
319 QPolygon ia;-
320 QColor color;-
321 QFont font;-
322 QPen pen;-
323 QBrush brush;-
324 QRegion rgn;-
325 QMatrix wmatrix;-
326 QTransform matrix;-
327-
328 QTransform worldMatrix = painter->transform();-
329 worldMatrix.scale(qreal(painter->device()->logicalDpiX()) / qreal(qt_defaultDpiX()),-
330 qreal(painter->device()->logicalDpiY()) / qreal(qt_defaultDpiY()));-
331 painter->setTransform(worldMatrix);-
332-
333 while (nrecords--
nrecords--Description
TRUEnever evaluated
FALSEnever evaluated
&& !s.atEnd()
!s.atEnd()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
334 s >> c;-
335 s >> tiny_len;-
336 if (tiny_len == 255
tiny_len == 255Description
TRUEnever evaluated
FALSEnever evaluated
)
0
337 s >> len;
never executed: s >> len;
0
338 else-
339 len = tiny_len;
never executed: len = tiny_len;
0
340-
341 strm_pos = s.device()->pos();-
342-
343 switch (c) {-
344 case
never executed: case QPicturePrivate::PdcNOP:
QPicturePrivate::PdcNOP:
never executed: case QPicturePrivate::PdcNOP:
0
345 break;
never executed: break;
0
346 case
never executed: case QPicturePrivate::PdcDrawPoint:
QPicturePrivate::PdcDrawPoint:
never executed: case QPicturePrivate::PdcDrawPoint:
0
347 if (d->formatMajor <= 5
d->formatMajor <= 5Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
348 s >> ip;-
349 painter->drawPoint(ip);-
350 }
never executed: end of block
else {
0
351 s >> p;-
352 painter->drawPoint(p);-
353 }
never executed: end of block
0
354 break;
never executed: break;
0
355 case
never executed: case QPicturePrivate::PdcDrawPoints:
QPicturePrivate::PdcDrawPoints:
never executed: case QPicturePrivate::PdcDrawPoints:
0
356-
357-
358-
359 break;
never executed: break;
0
360 case
never executed: case QPicturePrivate::PdcDrawPath:
QPicturePrivate::PdcDrawPath:
never executed: case QPicturePrivate::PdcDrawPath:
{
0
361 QPainterPath path;-
362 s >> path;-
363 painter->drawPath(path);-
364 break;
never executed: break;
0
365 }-
366 case
never executed: case QPicturePrivate::PdcDrawLine:
QPicturePrivate::PdcDrawLine:
never executed: case QPicturePrivate::PdcDrawLine:
0
367 if (d->formatMajor <= 5
d->formatMajor <= 5Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
368 s >> ip1 >> ip2;-
369 painter->drawLine(ip1, ip2);-
370 }
never executed: end of block
else {
0
371 s >> p1 >> p2;-
372 painter->drawLine(p1, p2);-
373 }
never executed: end of block
0
374 break;
never executed: break;
0
375 case
never executed: case QPicturePrivate::PdcDrawRect:
QPicturePrivate::PdcDrawRect:
never executed: case QPicturePrivate::PdcDrawRect:
0
376 if (d->formatMajor <= 5
d->formatMajor <= 5Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
377 s >> ir;-
378 painter->drawRect(ir);-
379 }
never executed: end of block
else {
0
380 s >> r;-
381 painter->drawRect(r);-
382 }
never executed: end of block
0
383 break;
never executed: break;
0
384 case
never executed: case QPicturePrivate::PdcDrawRoundRect:
QPicturePrivate::PdcDrawRoundRect:
never executed: case QPicturePrivate::PdcDrawRoundRect:
0
385 if (d->formatMajor <= 5
d->formatMajor <= 5Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
386 s >> ir >> i1_16 >> i2_16;-
387 painter->drawRoundedRect(ir, i1_16, i2_16, Qt::RelativeSize);-
388 }
never executed: end of block
else {
0
389 s >> r >> i1_16 >> i2_16;-
390 painter->drawRoundedRect(r, i1_16, i2_16, Qt::RelativeSize);-
391 }
never executed: end of block
0
392 break;
never executed: break;
0
393 case
never executed: case QPicturePrivate::PdcDrawEllipse:
QPicturePrivate::PdcDrawEllipse:
never executed: case QPicturePrivate::PdcDrawEllipse:
0
394 if (d->formatMajor <= 5
d->formatMajor <= 5Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
395 s >> ir;-
396 painter->drawEllipse(ir);-
397 }
never executed: end of block
else {
0
398 s >> r;-
399 painter->drawEllipse(r);-
400 }
never executed: end of block
0
401 break;
never executed: break;
0
402 case
never executed: case QPicturePrivate::PdcDrawArc:
QPicturePrivate::PdcDrawArc:
never executed: case QPicturePrivate::PdcDrawArc:
0
403 if (d->formatMajor <= 5
d->formatMajor <= 5Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
404 s >> ir;-
405 r = ir;-
406 }
never executed: end of block
else {
0
407 s >> r;-
408 }
never executed: end of block
0
409 s >> i1_16 >> i2_16;-
410 painter->drawArc(r, i1_16, i2_16);-
411 break;
never executed: break;
0
412 case
never executed: case QPicturePrivate::PdcDrawPie:
QPicturePrivate::PdcDrawPie:
never executed: case QPicturePrivate::PdcDrawPie:
0
413 if (d->formatMajor <= 5
d->formatMajor <= 5Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
414 s >> ir;-
415 r = ir;-
416 }
never executed: end of block
else {
0
417 s >> r;-
418 }
never executed: end of block
0
419 s >> i1_16 >> i2_16;-
420 painter->drawPie(r, i1_16, i2_16);-
421 break;
never executed: break;
0
422 case
never executed: case QPicturePrivate::PdcDrawChord:
QPicturePrivate::PdcDrawChord:
never executed: case QPicturePrivate::PdcDrawChord:
0
423 if (d->formatMajor <= 5
d->formatMajor <= 5Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
424 s >> ir;-
425 r = ir;-
426 }
never executed: end of block
else {
0
427 s >> r;-
428 }
never executed: end of block
0
429 s >> i1_16 >> i2_16;-
430 painter->drawChord(r, i1_16, i2_16);-
431 break;
never executed: break;
0
432 case
never executed: case QPicturePrivate::PdcDrawLineSegments:
QPicturePrivate::PdcDrawLineSegments:
never executed: case QPicturePrivate::PdcDrawLineSegments:
0
433 s >> ia;-
434 painter->drawLines(ia);-
435 ia.clear();-
436 break;
never executed: break;
0
437 case
never executed: case QPicturePrivate::PdcDrawPolyline:
QPicturePrivate::PdcDrawPolyline:
never executed: case QPicturePrivate::PdcDrawPolyline:
0
438 if (d->formatMajor <= 5
d->formatMajor <= 5Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
439 s >> ia;-
440 painter->drawPolyline(ia);-
441 ia.clear();-
442 }
never executed: end of block
else {
0
443 s >> a;-
444 painter->drawPolyline(a);-
445 a.clear();-
446 }
never executed: end of block
0
447 break;
never executed: break;
0
448 case
never executed: case QPicturePrivate::PdcDrawPolygon:
QPicturePrivate::PdcDrawPolygon:
never executed: case QPicturePrivate::PdcDrawPolygon:
0
449 if (d->formatMajor <= 5
d->formatMajor <= 5Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
450 s >> ia >> i_8;-
451 painter->drawPolygon(ia, i_8 ? Qt::WindingFill : Qt::OddEvenFill);-
452 a.clear();-
453 }
never executed: end of block
else {
0
454 s >> a >> i_8;-
455 painter->drawPolygon(a, i_8 ? Qt::WindingFill : Qt::OddEvenFill);-
456 a.clear();-
457 }
never executed: end of block
0
458 break;
never executed: break;
0
459 case
never executed: case QPicturePrivate::PdcDrawCubicBezier:
QPicturePrivate::PdcDrawCubicBezier:
never executed: case QPicturePrivate::PdcDrawCubicBezier:
{
0
460 s >> ia;-
461 QPainterPath path;-
462 ((!(ia.size() == 4)) ? qt_assert("ia.size() == 4",__FILE__,649) : qt_noop());-
463 path.moveTo(ia.at(0));-
464 path.cubicTo(ia.at(1), ia.at(2), ia.at(3));-
465 painter->strokePath(path, painter->pen());-
466 a.clear();-
467 }-
468 break;
never executed: break;
0
469 case
never executed: case QPicturePrivate::PdcDrawText:
QPicturePrivate::PdcDrawText:
never executed: case QPicturePrivate::PdcDrawText:
0
470 s >> ip >> str1;-
471 painter->drawText(ip, QString::fromLatin1(str1));-
472 break;
never executed: break;
0
473 case
never executed: case QPicturePrivate::PdcDrawTextFormatted:
QPicturePrivate::PdcDrawTextFormatted:
never executed: case QPicturePrivate::PdcDrawTextFormatted:
0
474 s >> ir >> i_16 >> str1;-
475 painter->drawText(ir, i_16, QString::fromLatin1(str1));-
476 break;
never executed: break;
0
477 case
never executed: case QPicturePrivate::PdcDrawText2:
QPicturePrivate::PdcDrawText2:
never executed: case QPicturePrivate::PdcDrawText2:
0
478 if (d->formatMajor <= 5
d->formatMajor <= 5Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
479 s >> ip >> str;-
480 painter->drawText(ip, str);-
481 }
never executed: end of block
else {
0
482 s >> p >> str;-
483 painter->drawText(p, str);-
484 }
never executed: end of block
0
485 break;
never executed: break;
0
486 case
never executed: case QPicturePrivate::PdcDrawText2Formatted:
QPicturePrivate::PdcDrawText2Formatted:
never executed: case QPicturePrivate::PdcDrawText2Formatted:
0
487 s >> ir;-
488 s >> i_16;-
489 s >> str;-
490 painter->drawText(ir, i_16, str);-
491 break;
never executed: break;
0
492 case
never executed: case QPicturePrivate::PdcDrawTextItem:
QPicturePrivate::PdcDrawTextItem:
never executed: case QPicturePrivate::PdcDrawTextItem:
{
0
493 s >> p >> str >> font >> ul;-
494-
495-
496-
497-
498-
499 if (d->formatMajor >= 9
d->formatMajor >= 9Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
500 s >> dbl;-
501 QFont fnt(font);-
502 if (dbl != 1.0
dbl != 1.0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
503 QFakeDevice fake;-
504 fake.setDpiX(qRound(dbl*qt_defaultDpiX()));-
505 fake.setDpiY(qRound(dbl*qt_defaultDpiY()));-
506 fnt = QFont(font, &fake);-
507 }
never executed: end of block
0
508-
509 qreal justificationWidth;-
510 s >> justificationWidth;-
511-
512 int flags = Qt::TextSingleLine | Qt::TextDontClip | Qt::TextForceLeftToRight;-
513-
514 QSizeF size(1, 1);-
515 if (justificationWidth > 0
justificationWidth > 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
516 size.setWidth(justificationWidth);-
517 flags |= Qt::TextJustificationForced;-
518 flags |= Qt::AlignJustify;-
519 }
never executed: end of block
0
520-
521 QFontMetrics fm(fnt);-
522 QPointF pt(p.x(), p.y() - fm.ascent());-
523 qt_format_text(fnt, QRectF(pt, size), flags, 0,-
524 str, 0, 0, 0, 0, painter);-
525 }
never executed: end of block
else {
0
526 qt_format_text(font, QRectF(p, QSizeF(1, 1)), Qt::TextSingleLine | Qt::TextDontClip, 0,-
527 str, 0, 0, 0, 0, painter);-
528 }
never executed: end of block
0
529-
530 break;
never executed: break;
0
531 }-
532 case
never executed: case QPicturePrivate::PdcDrawPixmap:
QPicturePrivate::PdcDrawPixmap:
never executed: case QPicturePrivate::PdcDrawPixmap:
{
0
533 QPixmap pixmap;-
534 if (d->formatMajor < 4
d->formatMajor < 4Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
535 s >> ip >> pixmap;-
536 painter->drawPixmap(ip, pixmap);-
537 }
never executed: end of block
else if (d->formatMajor <= 5
d->formatMajor <= 5Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
538 s >> ir >> pixmap;-
539 painter->drawPixmap(ir, pixmap);-
540 }
never executed: end of block
else {
0
541 QRectF sr;-
542 if (d->in_memory_only
d->in_memory_onlyDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
543 int index;-
544 s >> r >> index >> sr;-
545 ((!(index < d->pixmap_list.size())) ? qt_assert("index < d->pixmap_list.size()",__FILE__,732) : qt_noop());-
546 pixmap = d->pixmap_list.at(index);-
547 }
never executed: end of block
else {
0
548 s >> r >> pixmap >> sr;-
549 }
never executed: end of block
0
550 painter->drawPixmap(r, pixmap, sr);-
551 }
never executed: end of block
0
552 }-
553 break;
never executed: break;
0
554 case
never executed: case QPicturePrivate::PdcDrawTiledPixmap:
QPicturePrivate::PdcDrawTiledPixmap:
never executed: case QPicturePrivate::PdcDrawTiledPixmap:
{
0
555 QPixmap pixmap;-
556 if (d->in_memory_only
d->in_memory_onlyDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
557 int index;-
558 s >> r >> index >> p;-
559 ((!(index < d->pixmap_list.size())) ? qt_assert("index < d->pixmap_list.size()",__FILE__,746) : qt_noop());-
560 pixmap = d->pixmap_list.at(index);-
561 }
never executed: end of block
else {
0
562 s >> r >> pixmap >> p;-
563 }
never executed: end of block
0
564 painter->drawTiledPixmap(r, pixmap, p);-
565 }-
566 break;
never executed: break;
0
567 case
never executed: case QPicturePrivate::PdcDrawImage:
QPicturePrivate::PdcDrawImage:
never executed: case QPicturePrivate::PdcDrawImage:
{
0
568 QImage image;-
569 if (d->formatMajor < 4
d->formatMajor < 4Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
570 s >> p >> image;-
571 painter->drawImage(p, image);-
572 }
never executed: end of block
else if (d->formatMajor <= 5
d->formatMajor <= 5Description
TRUEnever evaluated
FALSEnever evaluated
){
0
573 s >> ir >> image;-
574 painter->drawImage(ir, image, QRect(0, 0, ir.width(), ir.height()));-
575 }
never executed: end of block
else {
0
576 QRectF sr;-
577 if (d->in_memory_only
d->in_memory_onlyDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
578 int index;-
579 s >> r >> index >> sr >> ul;-
580 ((!(index < d->image_list.size())) ? qt_assert("index < d->image_list.size()",__FILE__,767) : qt_noop());-
581 image = d->image_list.at(index);-
582 }
never executed: end of block
else {
0
583 s >> r >> image >> sr >> ul;-
584 }
never executed: end of block
0
585 painter->drawImage(r, image, sr, Qt::ImageConversionFlags(ul));-
586 }
never executed: end of block
0
587 }-
588 break;
never executed: break;
0
589 case
never executed: case QPicturePrivate::PdcBegin:
QPicturePrivate::PdcBegin:
never executed: case QPicturePrivate::PdcBegin:
0
590 s >> ul;-
591 if (!exec(painter, s, ul)
!exec(painter, s, ul)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
592 return
never executed: return false;
false;
never executed: return false;
0
593 break;
never executed: break;
0
594 case
never executed: case QPicturePrivate::PdcEnd:
QPicturePrivate::PdcEnd:
never executed: case QPicturePrivate::PdcEnd:
0
595 if (nrecords == 0
nrecords == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
596 return
never executed: return true;
true;
never executed: return true;
0
597 break;
never executed: break;
0
598 case
never executed: case QPicturePrivate::PdcSave:
QPicturePrivate::PdcSave:
never executed: case QPicturePrivate::PdcSave:
0
599 painter->save();-
600 break;
never executed: break;
0
601 case
never executed: case QPicturePrivate::PdcRestore:
QPicturePrivate::PdcRestore:
never executed: case QPicturePrivate::PdcRestore:
0
602 painter->restore();-
603 break;
never executed: break;
0
604 case
never executed: case QPicturePrivate::PdcSetBkColor:
QPicturePrivate::PdcSetBkColor:
never executed: case QPicturePrivate::PdcSetBkColor:
0
605 s >> color;-
606 painter->setBackground(color);-
607 break;
never executed: break;
0
608 case
never executed: case QPicturePrivate::PdcSetBkMode:
QPicturePrivate::PdcSetBkMode:
never executed: case QPicturePrivate::PdcSetBkMode:
0
609 s >> i_8;-
610 painter->setBackgroundMode((Qt::BGMode)i_8);-
611 break;
never executed: break;
0
612 case
never executed: case QPicturePrivate::PdcSetROP:
QPicturePrivate::PdcSetROP:
never executed: case QPicturePrivate::PdcSetROP:
0
613 s >> i_8;-
614 break;
never executed: break;
0
615 case
never executed: case QPicturePrivate::PdcSetBrushOrigin:
QPicturePrivate::PdcSetBrushOrigin:
never executed: case QPicturePrivate::PdcSetBrushOrigin:
0
616 if (d->formatMajor <= 5
d->formatMajor <= 5Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
617 s >> ip;-
618 painter->setBrushOrigin(ip);-
619 }
never executed: end of block
else {
0
620 s >> p;-
621 painter->setBrushOrigin(p);-
622 }
never executed: end of block
0
623 break;
never executed: break;
0
624 case
never executed: case QPicturePrivate::PdcSetFont:
QPicturePrivate::PdcSetFont:
never executed: case QPicturePrivate::PdcSetFont:
0
625 s >> font;-
626 painter->setFont(font);-
627 break;
never executed: break;
0
628 case
never executed: case QPicturePrivate::PdcSetPen:
QPicturePrivate::PdcSetPen:
never executed: case QPicturePrivate::PdcSetPen:
0
629 if (d->in_memory_only
d->in_memory_onlyDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
630 int index;-
631 s >> index;-
632 ((!(index < d->pen_list.size())) ? qt_assert("index < d->pen_list.size()",__FILE__,819) : qt_noop());-
633 pen = d->pen_list.at(index);-
634 }
never executed: end of block
else {
0
635 s >> pen;-
636 }
never executed: end of block
0
637 painter->setPen(pen);-
638 break;
never executed: break;
0
639 case
never executed: case QPicturePrivate::PdcSetBrush:
QPicturePrivate::PdcSetBrush:
never executed: case QPicturePrivate::PdcSetBrush:
0
640 if (d->in_memory_only
d->in_memory_onlyDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
641 int index;-
642 s >> index;-
643 ((!(index < d->brush_list.size())) ? qt_assert("index < d->brush_list.size()",__FILE__,830) : qt_noop());-
644 brush = d->brush_list.at(index);-
645 }
never executed: end of block
else {
0
646 s >> brush;-
647 }
never executed: end of block
0
648 painter->setBrush(brush);-
649 break;
never executed: break;
0
650 case
never executed: case QPicturePrivate::PdcSetVXform:
QPicturePrivate::PdcSetVXform:
never executed: case QPicturePrivate::PdcSetVXform:
0
651 s >> i_8;-
652 painter->setViewTransformEnabled(i_8);-
653 break;
never executed: break;
0
654 case
never executed: case QPicturePrivate::PdcSetWindow:
QPicturePrivate::PdcSetWindow:
never executed: case QPicturePrivate::PdcSetWindow:
0
655 if (d->formatMajor <= 5
d->formatMajor <= 5Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
656 s >> ir;-
657 painter->setWindow(ir);-
658 }
never executed: end of block
else {
0
659 s >> r;-
660 painter->setWindow(r.toRect());-
661 }
never executed: end of block
0
662 break;
never executed: break;
0
663 case
never executed: case QPicturePrivate::PdcSetViewport:
QPicturePrivate::PdcSetViewport:
never executed: case QPicturePrivate::PdcSetViewport:
0
664 if (d->formatMajor <= 5
d->formatMajor <= 5Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
665 s >> ir;-
666 painter->setViewport(ir);-
667 }
never executed: end of block
else {
0
668 s >> r;-
669 painter->setViewport(r.toRect());-
670 }
never executed: end of block
0
671 break;
never executed: break;
0
672 case
never executed: case QPicturePrivate::PdcSetWXform:
QPicturePrivate::PdcSetWXform:
never executed: case QPicturePrivate::PdcSetWXform:
0
673 s >> i_8;-
674 painter->setMatrixEnabled(i_8);-
675 break;
never executed: break;
0
676 case
never executed: case QPicturePrivate::PdcSetWMatrix:
QPicturePrivate::PdcSetWMatrix:
never executed: case QPicturePrivate::PdcSetWMatrix:
0
677 if (d->formatMajor >= 8
d->formatMajor >= 8Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
678 s >> matrix >> i_8;-
679 }
never executed: end of block
else {
0
680 s >> wmatrix >> i_8;-
681 matrix = QTransform(wmatrix);-
682 }
never executed: end of block
0
683-
684 painter->setTransform(matrix * worldMatrix, i_8);-
685 break;
never executed: break;
0
686 case
never executed: case QPicturePrivate::PdcSetClip:
QPicturePrivate::PdcSetClip:
never executed: case QPicturePrivate::PdcSetClip:
0
687 s >> i_8;-
688 painter->setClipping(i_8);-
689 break;
never executed: break;
0
690 case
never executed: case QPicturePrivate::PdcSetClipRegion:
QPicturePrivate::PdcSetClipRegion:
never executed: case QPicturePrivate::PdcSetClipRegion:
0
691 s >> rgn >> i_8;-
692 if (d->formatMajor >= 9
d->formatMajor >= 9Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
693 painter->setClipRegion(rgn, Qt::ClipOperation(i_8));-
694 }
never executed: end of block
else {
0
695 painter->setClipRegion(rgn);-
696 }
never executed: end of block
0
697 break;
never executed: break;
0
698 case
never executed: case QPicturePrivate::PdcSetClipPath:
QPicturePrivate::PdcSetClipPath:
never executed: case QPicturePrivate::PdcSetClipPath:
0
699 {-
700 QPainterPath path;-
701 s >> path >> i_8;-
702 painter->setClipPath(path, Qt::ClipOperation(i_8));-
703 break;
never executed: break;
0
704 }-
705 case
never executed: case QPicturePrivate::PdcSetRenderHint:
QPicturePrivate::PdcSetRenderHint:
never executed: case QPicturePrivate::PdcSetRenderHint:
0
706 s >> ul;-
707 painter->setRenderHint(QPainter::Antialiasing,-
708 bool(ul & QPainter::Antialiasing));-
709 painter->setRenderHint(QPainter::SmoothPixmapTransform,-
710 bool(ul & QPainter::SmoothPixmapTransform));-
711 break;
never executed: break;
0
712 case
never executed: case QPicturePrivate::PdcSetCompositionMode:
QPicturePrivate::PdcSetCompositionMode:
never executed: case QPicturePrivate::PdcSetCompositionMode:
0
713 s >> ul;-
714 painter->setCompositionMode((QPainter::CompositionMode)ul);-
715 break;
never executed: break;
0
716 case
never executed: case QPicturePrivate::PdcSetClipEnabled:
QPicturePrivate::PdcSetClipEnabled:
never executed: case QPicturePrivate::PdcSetClipEnabled:
0
717 s >> bl;-
718 painter->setClipping(bl);-
719 break;
never executed: break;
0
720 case
never executed: case QPicturePrivate::PdcSetOpacity:
QPicturePrivate::PdcSetOpacity:
never executed: case QPicturePrivate::PdcSetOpacity:
0
721 s >> dbl;-
722 painter->setOpacity(qreal(dbl));-
723 break;
never executed: break;
0
724 default
never executed: default:
:
never executed: default:
0
725 QMessageLogger(__FILE__, 912, __PRETTY_FUNCTION__).warning("QPicture::play: Invalid command %d", c);-
726 if (len
lenDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
727 s.device()->seek(s.device()->pos()+len);
never executed: s.device()->seek(s.device()->pos()+len);
0
728 }
never executed: end of block
0
729-
730-
731 ((!(qint32(s.device()->pos() - strm_pos) == len)) ? qt_assert("qint32(s.device()->pos() - strm_pos) == len",__FILE__,918) : qt_noop());-
732-
733 }
never executed: end of block
0
734 return
never executed: return false;
false;
never executed: return false;
0
735}-
736int QPicture::metric(PaintDeviceMetric m) const-
737{-
738 int val;-
739 QRect brect = boundingRect();-
740 switch (m) {-
741 case
never executed: case PdmWidth:
PdmWidth:
never executed: case PdmWidth:
0
742 val = brect.width();-
743 break;
never executed: break;
0
744 case
never executed: case PdmHeight:
PdmHeight:
never executed: case PdmHeight:
0
745 val = brect.height();-
746 break;
never executed: break;
0
747 case
never executed: case PdmWidthMM:
PdmWidthMM:
never executed: case PdmWidthMM:
0
748 val = int(25.4/qt_defaultDpiX()*brect.width());-
749 break;
never executed: break;
0
750 case
never executed: case PdmHeightMM:
PdmHeightMM:
never executed: case PdmHeightMM:
0
751 val = int(25.4/qt_defaultDpiY()*brect.height());-
752 break;
never executed: break;
0
753 case
never executed: case PdmDpiX:
PdmDpiX:
never executed: case PdmDpiX:
0
754 case
never executed: case PdmPhysicalDpiX:
PdmPhysicalDpiX:
never executed: case PdmPhysicalDpiX:
0
755 val = qt_defaultDpiX();-
756 break;
never executed: break;
0
757 case
never executed: case PdmDpiY:
PdmDpiY:
never executed: case PdmDpiY:
0
758 case
never executed: case PdmPhysicalDpiY:
PdmPhysicalDpiY:
never executed: case PdmPhysicalDpiY:
0
759 val = qt_defaultDpiY();-
760 break;
never executed: break;
0
761 case
never executed: case PdmNumColors:
PdmNumColors:
never executed: case PdmNumColors:
0
762 val = 16777216;-
763 break;
never executed: break;
0
764 case
never executed: case PdmDepth:
PdmDepth:
never executed: case PdmDepth:
0
765 val = 24;-
766 break;
never executed: break;
0
767 case
never executed: case PdmDevicePixelRatio:
PdmDevicePixelRatio:
never executed: case PdmDevicePixelRatio:
0
768 val = 1;-
769 break;
never executed: break;
0
770 case
never executed: case PdmDevicePixelRatioScaled:
PdmDevicePixelRatioScaled:
never executed: case PdmDevicePixelRatioScaled:
0
771 val = 1 * QPaintDevice::devicePixelRatioFScale();-
772 break;
never executed: break;
0
773 default
never executed: default:
:
never executed: default:
0
774 val = 0;-
775 QMessageLogger(__FILE__, 975, __PRETTY_FUNCTION__).warning("QPicture::metric: Invalid metric command");-
776 }
never executed: end of block
0
777 return
never executed: return val;
val;
never executed: return val;
0
778}-
779QPicture& QPicture::operator=(const QPicture &p)-
780{-
781 d_ptr = p.d_ptr;-
782 return
never executed: return *this;
*this;
never executed: return *this;
0
783}-
784QPicturePrivate::QPicturePrivate()-
785 : in_memory_only(false)-
786{-
787}
never executed: end of block
0
788-
789-
790-
791-
792-
793-
794QPicturePrivate::QPicturePrivate(const QPicturePrivate &other)-
795 : trecs(other.trecs),-
796 formatOk(other.formatOk),-
797 formatMinor(other.formatMinor),-
798 brect(other.brect),-
799 override_rect(other.override_rect),-
800 in_memory_only(false)-
801{-
802 pictb.setData(other.pictb.data(), other.pictb.size());-
803 if (other.pictb.isOpen()
other.pictb.isOpen()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
804 pictb.open(other.pictb.openMode());-
805 pictb.seek(other.pictb.pos());-
806 }
never executed: end of block
0
807}
never executed: end of block
0
808-
809-
810-
811-
812-
813-
814-
815void QPicturePrivate::resetFormat()-
816{-
817 formatOk = false;-
818 formatMajor = mfhdr_maj;-
819 formatMinor = mfhdr_min;-
820}
never executed: end of block
0
821bool QPicturePrivate::checkFormat()-
822{-
823 resetFormat();-
824-
825-
826 if (pictb.size() == 0
pictb.size() == 0Description
TRUEnever evaluated
FALSEnever evaluated
|| pictb.isOpen()
pictb.isOpen()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
827 return
never executed: return false;
false;
never executed: return false;
0
828-
829 pictb.open(QIODevice::ReadOnly);-
830 QDataStream s;-
831 s.setDevice(&pictb);-
832-
833 char mf_id[4];-
834 s.readRawData(mf_id, 4);-
835 if (memcmp(mf_id, qt_mfhdr_tag, 4) != 0
memcmp(mf_id, ...r_tag, 4) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
836 QMessageLogger(__FILE__, 1079, __PRETTY_FUNCTION__).warning("QPicturePaintEngine::checkFormat: Incorrect header");-
837 pictb.close();-
838 return
never executed: return false;
false;
never executed: return false;
0
839 }-
840-
841 int cs_start = sizeof(quint32);-
842 int data_start = cs_start + sizeof(quint16);-
843 quint16 cs,ccs;-
844 QByteArray buf = pictb.buffer();-
845-
846 s >> cs;-
847 ccs = (quint16) qChecksum(buf.constData() + data_start, buf.size() - data_start);-
848 if (ccs != cs
ccs != csDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
849 QMessageLogger(__FILE__, 1092, __PRETTY_FUNCTION__).warning("QPicturePaintEngine::checkFormat: Invalid checksum %x, %x expected",-
850 ccs, cs);-
851 pictb.close();-
852 return
never executed: return false;
false;
never executed: return false;
0
853 }-
854-
855 quint16 major, minor;-
856 s >> major >> minor;-
857 if (major > mfhdr_maj
major > mfhdr_majDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
858 QMessageLogger(__FILE__, 1101, __PRETTY_FUNCTION__).warning("QPicturePaintEngine::checkFormat: Incompatible version %d.%d",-
859 major, minor);-
860 pictb.close();-
861 return
never executed: return false;
false;
never executed: return false;
0
862 }-
863 s.setVersion(major != 4 ? major : 3);-
864-
865 quint8 c, clen;-
866 s >> c >> clen;-
867 if (c == QPicturePrivate::PdcBegin
c == QPicturePrivate::PdcBeginDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
868 if (!(major >= 1
major >= 1Description
TRUEnever evaluated
FALSEnever evaluated
&& major <= 3
major <= 3Description
TRUEnever evaluated
FALSEnever evaluated
)) {
0
869 qint32 l, t, w, h;-
870 s >> l >> t >> w >> h;-
871 brect = QRect(l, t, w, h);-
872 }
never executed: end of block
0
873 }
never executed: end of block
else {
0
874 QMessageLogger(__FILE__, 1117, __PRETTY_FUNCTION__).warning("QPicturePaintEngine::checkFormat: Format error");-
875 pictb.close();-
876 return
never executed: return false;
false;
never executed: return false;
0
877 }-
878 pictb.close();-
879-
880 formatOk = true;-
881 formatMajor = major;-
882 formatMinor = minor;-
883 return
never executed: return true;
true;
never executed: return true;
0
884}-
885-
886-
887QPaintEngine *QPicture::paintEngine() const-
888{-
889 if (!d_func()->paintEngine
!d_func()->paintEngineDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
890 const_cast<
never executed: const_cast<QPicture*>(this)->d_func()->paintEngine.reset(new QPicturePaintEngine);
QPicture*>(this)->d_func()->paintEngine.reset(new QPicturePaintEngine);
never executed: const_cast<QPicture*>(this)->d_func()->paintEngine.reset(new QPicturePaintEngine);
0
891 return
never executed: return d_func()->paintEngine.data();
d_func()->paintEngine.data();
never executed: return d_func()->paintEngine.data();
0
892}-
893QDataStream &operator<<(QDataStream &s, const QPicture &r)-
894{-
895 quint32 size = r.d_func()->pictb.buffer().size();-
896 s << size;-
897-
898 if (size == 0
size == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
899 return
never executed: return s;
s;
never executed: return s;
0
900-
901 s.writeRawData (r.d_func()->pictb.buffer(), r.d_func()->pictb.buffer().size());-
902 return
never executed: return s;
s;
never executed: return s;
0
903}-
904QDataStream &operator>>(QDataStream &s, QPicture &r)-
905{-
906 QDataStream sr;-
907-
908-
909 sr.setDevice(&r.d_func()->pictb);-
910 sr.setVersion(r.d_func()->formatMajor);-
911 quint32 len;-
912 s >> len;-
913 QByteArray data;-
914 if (len > 0
len > 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
915 data.resize(len);-
916 s.readRawData(data.data(), len);-
917 }
never executed: end of block
0
918-
919 r.d_func()->pictb.setData(data);-
920 r.d_func()->resetFormat();-
921 return
never executed: return s;
s;
never executed: return s;
0
922}-
923-
924-
925-
926-
927-
928-
929-
930const char* QPicture::pictureFormat(const QString &fileName)-
931{-
932 return
never executed: return QPictureIO::pictureFormat(fileName);
QPictureIO::pictureFormat(fileName);
never executed: return QPictureIO::pictureFormat(fileName);
0
933}-
934QList<QByteArray> QPicture::inputFormats()-
935{-
936 return
never executed: return QPictureIO::inputFormats();
QPictureIO::inputFormats();
never executed: return QPictureIO::inputFormats();
0
937}-
938-
939static QStringList qToStringList(const QList<QByteArray> &arr)-
940{-
941 QStringList list;-
942 const int count = arr.count();-
943 list.reserve(count);-
944 for (int i = 0; i < count
i < countDescription
TRUEnever evaluated
FALSEnever evaluated
; ++i)
0
945 list.append(QString::fromLatin1(arr.at(i)));
never executed: list.append(QString::fromLatin1(arr.at(i)));
0
946 return
never executed: return list;
list;
never executed: return list;
0
947}-
948QStringList QPicture::inputFormatList()-
949{-
950 return
never executed: return qToStringList(QPictureIO::inputFormats());
qToStringList(QPictureIO::inputFormats());
never executed: return qToStringList(QPictureIO::inputFormats());
0
951}-
952QStringList QPicture::outputFormatList()-
953{-
954 return
never executed: return qToStringList(QPictureIO::outputFormats());
qToStringList(QPictureIO::outputFormats());
never executed: return qToStringList(QPictureIO::outputFormats());
0
955}-
956QList<QByteArray> QPicture::outputFormats()-
957{-
958 return
never executed: return QPictureIO::outputFormats();
QPictureIO::outputFormats();
never executed: return QPictureIO::outputFormats();
0
959}-
960struct QPictureIOData-
961{-
962 QPicture pi;-
963 int iostat;-
964 QByteArray frmt;-
965 QIODevice *iodev;-
966 QString fname;-
967 QString descr;-
968 const char *parameters;-
969 int quality;-
970 float gamma;-
971};-
972-
973-
974-
975-
976-
977QPictureIO::QPictureIO()-
978{-
979 init();-
980}
never executed: end of block
0
981-
982-
983-
984-
985-
986-
987QPictureIO::QPictureIO(QIODevice *ioDevice, const char *format)-
988{-
989 init();-
990 d->iodev = ioDevice;-
991 d->frmt = format;-
992}
never executed: end of block
0
993-
994-
995-
996-
997-
998-
999QPictureIO::QPictureIO(const QString &fileName, const char* format)-
1000{-
1001 init();-
1002 d->frmt = format;-
1003 d->fname = fileName;-
1004}
never executed: end of block
0
1005-
1006-
1007-
1008-
1009-
1010void QPictureIO::init()-
1011{-
1012 d = new QPictureIOData();-
1013 d->parameters = 0;-
1014 d->quality = -1;-
1015 d->gamma=0.0f;-
1016 d->iostat = 0;-
1017 d->iodev = 0;-
1018}
never executed: end of block
0
1019-
1020-
1021-
1022-
1023-
1024QPictureIO::~QPictureIO()-
1025{-
1026 if (d->parameters
d->parametersDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1027 delete [] d->parameters;
never executed: delete [] d->parameters;
0
1028 delete d;-
1029}
never executed: end of block
0
1030-
1031-
1032-
1033-
1034-
1035-
1036class QPictureHandler-
1037{-
1038public:-
1039 QPictureHandler(const char *f, const char *h, const QByteArray& fl,-
1040 picture_io_handler r, picture_io_handler w);-
1041 QByteArray format;-
1042 QRegExp header;-
1043 enum TMode { Untranslated=0, TranslateIn, TranslateInOut } text_mode;-
1044 picture_io_handler read_picture;-
1045 picture_io_handler write_picture;-
1046 bool obsolete;-
1047};-
1048-
1049QPictureHandler::QPictureHandler(const char *f, const char *h, const QByteArray& fl,-
1050 picture_io_handler r, picture_io_handler w)-
1051 : format(f), header(QString::fromLatin1(h))-
1052{-
1053 text_mode = Untranslated;-
1054 if (fl.contains('t')
fl.contains('t')Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1055 text_mode = TranslateIn;
never executed: text_mode = TranslateIn;
0
1056 else if (fl.contains('T')
fl.contains('T')Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1057 text_mode = TranslateInOut;
never executed: text_mode = TranslateInOut;
0
1058 obsolete = fl.contains('O');-
1059 read_picture = r;-
1060 write_picture = w;-
1061}
never executed: end of block
0
1062-
1063typedef QList<QPictureHandler *> QPHList;-
1064namespace { namespace Q_QGS_pictureHandlers { typedef QPHList Type; QBasicAtomicInt guard = { QtGlobalStatic::Uninitialized }; __attribute__((visibility("hidden"))) inline Type *innerFunction() { struct HolderBase { ~HolderBase() noexcept { if (guard.load() == QtGlobalStatic::Initialized
guard.load() =...c::InitializedDescription
TRUEnever evaluated
FALSEnever evaluated
) guard.store(QtGlobalStatic::Destroyed);
never executed: guard.store(QtGlobalStatic::Destroyed);
}
never executed: end of block
}; static struct Holder : public HolderBase { Type value; Holder() noexcept(noexcept(Type ())) : value () { guard.store(QtGlobalStatic::Initialized); } } holder; return
never executed: return &holder.value;
&holder.value;
never executed: return &holder.value;
} } } static QGlobalStatic<QPHList, Q_QGS_pictureHandlers::innerFunction, Q_QGS_pictureHandlers::guard> pictureHandlers;
0
1065-
1066void qt_init_picture_plugins()-
1067{-
1068 typedef QMultiMap<int, QString> PluginKeyMap;-
1069 typedef PluginKeyMap::const_iterator PluginKeyMapConstIterator;-
1070-
1071 static QBasicMutex mutex;-
1072 QMutexLocker locker(&mutex);-
1073 static QFactoryLoader loader("org.qt-project.Qt.QPictureFormatInterface",-
1074 ([]() -> QString { enum { Size = sizeof(u"" "/pictureformats")/2 - 1 }; static const QStaticStringData<Size> qstring_literal = { { { { -1 } }, Size, 0, 0, sizeof(QStringData) }, u"" "/pictureformats" }; QStringDataPtr holder = { qstring_literal.data_ptr() }; const QString qstring_literal_temp(holder); return qstring_literal_temp; }()));-
1075-
1076 const PluginKeyMap keyMap = loader.keyMap();-
1077 const PluginKeyMapConstIterator cend = keyMap.constEnd();-
1078 for (PluginKeyMapConstIterator it = keyMap.constBegin(); it != cend
it != cendDescription
TRUEnever evaluated
FALSEnever evaluated
; ++it) {
0
1079 if (QPictureFormatPlugin *format = qobject_cast<QPictureFormatPlugin*>(loader.instance(it.key()))
QPictureFormat...nce(it.key()))Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1080 format->installIOHandler(it.value());
never executed: format->installIOHandler(it.value());
0
1081 }
never executed: end of block
0
1082}
never executed: end of block
0
1083-
1084static void cleanup()-
1085{-
1086-
1087 if (QPHList *list = pictureHandlers()
QPHList *list ...tureHandlers()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1088 qDeleteAll(*list);-
1089 list->clear();-
1090 }
never executed: end of block
0
1091}
never executed: end of block
0
1092-
1093void qt_init_picture_handlers()-
1094{-
1095 static QBasicAtomicInt done = { 0 };-
1096 if (done.testAndSetRelaxed(0, 1)
done.testAndSetRelaxed(0, 1)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1097 qAddPostRoutine(cleanup);-
1098 }
never executed: end of block
0
1099}
never executed: end of block
0
1100-
1101static QPictureHandler *get_picture_handler(const char *format)-
1102{-
1103 qt_init_picture_handlers();-
1104 qt_init_picture_plugins();-
1105 if (QPHList *list = pictureHandlers()
QPHList *list ...tureHandlers()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1106 for (int i = 0; i < list->size()
i < list->size()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
1107 if (list->at(i)->format == format
list->at(i)->format == formatDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1108 return
never executed: return list->at(i);
list->at(i);
never executed: return list->at(i);
0
1109 }
never executed: end of block
0
1110 }
never executed: end of block
0
1111 return
never executed: return 0;
0;
never executed: return 0;
0
1112}-
1113void QPictureIO::defineIOHandler(const char *format,-
1114 const char *header,-
1115 const char *flags,-
1116 picture_io_handler readPicture,-
1117 picture_io_handler writePicture)-
1118{-
1119 qt_init_picture_handlers();-
1120 if (QPHList *list = pictureHandlers()
QPHList *list ...tureHandlers()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1121 QPictureHandler *p;-
1122 p = new QPictureHandler(format, header, QByteArray(flags), readPicture, writePicture);-
1123 list->prepend(p);-
1124 }
never executed: end of block
0
1125}
never executed: end of block
0
1126const QPicture &QPictureIO::picture() const { return
never executed: return d->pi;
d->pi;
never executed: return d->pi;
}
0
1127-
1128-
1129-
1130-
1131-
1132-
1133-
1134int QPictureIO::status() const { return
never executed: return d->iostat;
d->iostat;
never executed: return d->iostat;
}
0
1135-
1136-
1137-
1138-
1139-
1140const char *QPictureIO::format() const { return
never executed: return d->frmt;
d->frmt;
never executed: return d->frmt;
}
0
1141-
1142-
1143-
1144-
1145-
1146-
1147QIODevice *QPictureIO::ioDevice() const { return
never executed: return d->iodev;
d->iodev;
never executed: return d->iodev;
}
0
1148-
1149-
1150-
1151-
1152-
1153-
1154QString QPictureIO::fileName() const { return
never executed: return d->fname;
d->fname;
never executed: return d->fname;
}
0
1155-
1156-
1157-
1158-
1159-
1160-
1161-
1162QString QPictureIO::description() const { return
never executed: return d->descr;
d->descr;
never executed: return d->descr;
}
0
1163-
1164-
1165-
1166-
1167-
1168-
1169void QPictureIO::setPicture(const QPicture &picture)-
1170{-
1171 d->pi = picture;-
1172}
never executed: end of block
0
1173-
1174-
1175-
1176-
1177-
1178-
1179-
1180void QPictureIO::setStatus(int status)-
1181{-
1182 d->iostat = status;-
1183}
never executed: end of block
0
1184void QPictureIO::setFormat(const char *format)-
1185{-
1186 d->frmt = format;-
1187}
never executed: end of block
0
1188void QPictureIO::setIODevice(QIODevice *ioDevice)-
1189{-
1190 d->iodev = ioDevice;-
1191}
never executed: end of block
0
1192-
1193-
1194-
1195-
1196-
1197-
1198-
1199void QPictureIO::setFileName(const QString &fileName)-
1200{-
1201 d->fname = fileName;-
1202}
never executed: end of block
0
1203-
1204-
1205-
1206-
1207-
1208-
1209-
1210int QPictureIO::quality() const-
1211{-
1212 return
never executed: return d->quality;
d->quality;
never executed: return d->quality;
0
1213}-
1214void QPictureIO::setQuality(int q)-
1215{-
1216 d->quality = q;-
1217}
never executed: end of block
0
1218-
1219-
1220-
1221-
1222-
1223-
1224-
1225const char *QPictureIO::parameters() const-
1226{-
1227 return
never executed: return d->parameters;
d->parameters;
never executed: return d->parameters;
0
1228}-
1229void QPictureIO::setParameters(const char *parameters)-
1230{-
1231 if (d->parameters
d->parametersDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1232 delete [] d->parameters;
never executed: delete [] d->parameters;
0
1233 d->parameters = qstrdup(parameters);-
1234}
never executed: end of block
0
1235void QPictureIO::setGamma(float gamma)-
1236{-
1237 d->gamma=gamma;-
1238}
never executed: end of block
0
1239-
1240-
1241-
1242-
1243-
1244-
1245float QPictureIO::gamma() const-
1246{-
1247 return
never executed: return d->gamma;
d->gamma;
never executed: return d->gamma;
0
1248}-
1249void QPictureIO::setDescription(const QString &description)-
1250{-
1251 d->descr = description;-
1252}
never executed: end of block
0
1253QByteArray QPictureIO::pictureFormat(const QString &fileName)-
1254{-
1255 QFile file(fileName);-
1256 QByteArray format;-
1257 if (!file.open(QIODevice::ReadOnly)
!file.open(QIO...ice::ReadOnly)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1258 return
never executed: return format;
format;
never executed: return format;
0
1259 format = pictureFormat(&file);-
1260 file.close();-
1261 return
never executed: return format;
format;
never executed: return format;
0
1262}-
1263QByteArray QPictureIO::pictureFormat(QIODevice *d)-
1264{-
1265-
1266 const int buflen = 14;-
1267-
1268 char buf[buflen];-
1269 char buf2[buflen];-
1270 qt_init_picture_handlers();-
1271 qt_init_picture_plugins();-
1272 int pos = d->pos();-
1273 int rdlen = d->read(buf, buflen);-
1274-
1275 QByteArray format;-
1276 if (rdlen != buflen
rdlen != buflenDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1277 return
never executed: return format;
format;
never executed: return format;
0
1278-
1279 memcpy(buf2, buf, buflen);-
1280-
1281 for (int n = 0; n < rdlen
n < rdlenDescription
TRUEnever evaluated
FALSEnever evaluated
; n++)
0
1282 if (buf[n] == '\0'
buf[n] == '\0'Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1283 buf[n] = '\001';
never executed: buf[n] = '\001';
0
1284 if (rdlen > 0
rdlen > 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1285 buf[rdlen - 1] = '\0';-
1286 QString bufStr = QString::fromLatin1(buf);-
1287 if (QPHList *list = pictureHandlers()
QPHList *list ...tureHandlers()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1288 for (int i = 0; i < list->size()
i < list->size()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
1289 if (list->at(i)->header.indexIn(bufStr) != -1
list->at(i)->h...(bufStr) != -1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1290 format = list->at(i)->format;-
1291 break;
never executed: break;
0
1292 }-
1293 }
never executed: end of block
0
1294 }
never executed: end of block
0
1295 }
never executed: end of block
0
1296 d->seek(pos);-
1297 return
never executed: return format;
format;
never executed: return format;
0
1298}-
1299-
1300-
1301-
1302-
1303-
1304QList<QByteArray> QPictureIO::inputFormats()-
1305{-
1306 QList<QByteArray> result;-
1307-
1308 qt_init_picture_handlers();-
1309 qt_init_picture_plugins();-
1310-
1311 if (QPHList *list = pictureHandlers()
QPHList *list ...tureHandlers()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1312 for (int i = 0; i < list->size()
i < list->size()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
1313 QPictureHandler *p = list->at(i);-
1314 if (p->read_picture
p->read_pictureDescription
TRUEnever evaluated
FALSEnever evaluated
&& !p->obsolete
!p->obsoleteDescription
TRUEnever evaluated
FALSEnever evaluated
&& !result.contains(p->format)
!result.contains(p->format)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1315 result.append(p->format);
never executed: result.append(p->format);
0
1316 }
never executed: end of block
0
1317 }
never executed: end of block
0
1318 std::sort(result.begin(), result.end());-
1319-
1320 return
never executed: return result;
result;
never executed: return result;
0
1321}-
1322-
1323-
1324-
1325-
1326-
1327QList<QByteArray> QPictureIO::outputFormats()-
1328{-
1329 qt_init_picture_handlers();-
1330 qt_init_picture_plugins();-
1331-
1332 QList<QByteArray> result;-
1333 if (QPHList *list = pictureHandlers()
QPHList *list ...tureHandlers()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1334 for (int i = 0; i < list->size()
i < list->size()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
1335 QPictureHandler *p = list->at(i);-
1336 if (p->write_picture
p->write_pictureDescription
TRUEnever evaluated
FALSEnever evaluated
&& !p->obsolete
!p->obsoleteDescription
TRUEnever evaluated
FALSEnever evaluated
&& !result.contains(p->format)
!result.contains(p->format)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1337 result.append(p->format);
never executed: result.append(p->format);
0
1338 }
never executed: end of block
0
1339 }
never executed: end of block
0
1340 return
never executed: return result;
result;
never executed: return result;
0
1341}-
1342bool QPictureIO::read()-
1343{-
1344 QFile file;-
1345 const char *picture_format;-
1346 QPictureHandler *h;-
1347-
1348 if (d->iodev
d->iodevDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1349-
1350 }
never executed: end of block
else if (!d->fname.isEmpty()
!d->fname.isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1351 file.setFileName(d->fname);-
1352 if (!file.open(QIODevice::ReadOnly)
!file.open(QIO...ice::ReadOnly)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1353 return
never executed: return false;
false;
never executed: return false;
0
1354 d->iodev = &file;-
1355 }
never executed: end of block
else {
0
1356 return
never executed: return false;
false;
never executed: return false;
0
1357 }-
1358 if (d->frmt.isEmpty()
d->frmt.isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1359-
1360 picture_format = pictureFormat(d->iodev);-
1361 if (!picture_format
!picture_formatDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1362 if (file.isOpen()
file.isOpen()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1363 file.close();-
1364 d->iodev = 0;-
1365 }
never executed: end of block
0
1366 return
never executed: return false;
false;
never executed: return false;
0
1367 }-
1368 }
never executed: end of block
else {
0
1369 picture_format = d->frmt;-
1370 }
never executed: end of block
0
1371-
1372 h = get_picture_handler(picture_format);-
1373 if (file.isOpen()
file.isOpen()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1374-
1375-
1376-
1377-
1378-
1379-
1380-
1381 file.seek(0);-
1382 }
never executed: end of block
0
1383 d->iostat = 1;-
1384-
1385 if (h
hDescription
TRUEnever evaluated
FALSEnever evaluated
&& h->read_picture
h->read_pictureDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1386 (*
never executed: (*h->read_picture)(this);
h->read_picture)(this);
never executed: (*h->read_picture)(this);
0
1387-
1388 if (file.isOpen()
file.isOpen()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1389 file.close();-
1390 d->iodev = 0;-
1391 }
never executed: end of block
0
1392 return
never executed: return d->iostat == 0;
d->iostat == 0;
never executed: return d->iostat == 0;
0
1393}-
1394bool QPictureIO::write()-
1395{-
1396 if (d->frmt.isEmpty()
d->frmt.isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1397 return
never executed: return false;
false;
never executed: return false;
0
1398 QPictureHandler *h = get_picture_handler(d->frmt);-
1399 if (!h
!hDescription
TRUEnever evaluated
FALSEnever evaluated
|| !h->write_picture
!h->write_pictureDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1400 QMessageLogger(__FILE__, 1933, __PRETTY_FUNCTION__).warning("QPictureIO::write: No such picture format handler: %s",-
1401 format());-
1402 return
never executed: return false;
false;
never executed: return false;
0
1403 }-
1404 QFile file;-
1405 if (!d->iodev
!d->iodevDescription
TRUEnever evaluated
FALSEnever evaluated
&& !d->fname.isEmpty()
!d->fname.isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1406 file.setFileName(d->fname);-
1407 bool translate = h->text_mode==QPictureHandler::TranslateInOut;-
1408 QIODevice::OpenMode fmode = translate
translateDescription
TRUEnever evaluated
FALSEnever evaluated
? QIODevice::WriteOnly | QIODevice::Text : QIODevice::OpenMode(QIODevice::WriteOnly);
0
1409 if (!file.open(fmode)
!file.open(fmode)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1410 return
never executed: return false;
false;
never executed: return false;
0
1411 d->iodev = &file;-
1412 }
never executed: end of block
0
1413 d->iostat = 1;-
1414 (*h->write_picture)(this);-
1415 if (file.isOpen()
file.isOpen()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1416 file.close();-
1417 d->iodev = 0;-
1418 }
never executed: end of block
0
1419 return
never executed: return d->iostat == 0;
d->iostat == 0;
never executed: return d->iostat == 0;
0
1420}-
1421-
1422-
1423-
Switch to Source codePreprocessed file

Generated by Squish Coco Non-Commercial 4.3.0-BETA-master-30-08-2018-4cb69e9