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__, 138, __PRETTY_FUNCTION__).warning("QPicture: invalid format version 0");
never executed: QMessageLogger(__FILE__, 138, __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__, 285, __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__, 310, __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__, 327, __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__, 347, __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__, 363, __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__,427) : 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__, 435, __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__,643) : 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__,726) : 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__,740) : 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__,761) : 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__,813) : 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__,824) : 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__, 906, __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__,912) : 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__, 969, __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__, 1073, __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__, 1086, __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__, 1095, __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__, 1111, __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-
1069 typedef QMultiMap<int, QString> PluginKeyMap;-
1070 typedef PluginKeyMap::const_iterator PluginKeyMapConstIterator;-
1071-
1072 static QBasicMutex mutex;-
1073 QMutexLocker locker(&mutex);-
1074 static QFactoryLoader loader("org.qt-project.Qt.QPictureFormatInterface",-
1075 ([]() -> 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; }()));-
1076-
1077 const PluginKeyMap keyMap = loader.keyMap();-
1078 const PluginKeyMapConstIterator cend = keyMap.constEnd();-
1079 for (PluginKeyMapConstIterator it = keyMap.constBegin(); it != cend
it != cendDescription
TRUEnever evaluated
FALSEnever evaluated
; ++it) {
0
1080 if (QPictureFormatPlugin *format = qobject_cast<QPictureFormatPlugin*>(loader.instance(it.key()))
QPictureFormat...nce(it.key()))Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1081 format->installIOHandler(it.value());
never executed: format->installIOHandler(it.value());
0
1082 }
never executed: end of block
0
1083-
1084}
never executed: end of block
0
1085-
1086static void cleanup()-
1087{-
1088-
1089 if (QPHList *list = pictureHandlers()
QPHList *list ...tureHandlers()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1090 qDeleteAll(*list);-
1091 list->clear();-
1092 }
never executed: end of block
0
1093}
never executed: end of block
0
1094-
1095void qt_init_picture_handlers()-
1096{-
1097 static QBasicAtomicInt done = { 0 };-
1098 if (done.testAndSetRelaxed(0, 1)
done.testAndSetRelaxed(0, 1)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1099 qAddPostRoutine(cleanup);-
1100 }
never executed: end of block
0
1101}
never executed: end of block
0
1102-
1103static QPictureHandler *get_picture_handler(const char *format)-
1104{-
1105 qt_init_picture_handlers();-
1106 qt_init_picture_plugins();-
1107 if (QPHList *list = pictureHandlers()
QPHList *list ...tureHandlers()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1108 for (int i = 0; i < list->size()
i < list->size()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
1109 if (list->at(i)->format == format
list->at(i)->format == formatDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1110 return
never executed: return list->at(i);
list->at(i);
never executed: return list->at(i);
0
1111 }
never executed: end of block
0
1112 }
never executed: end of block
0
1113 return
never executed: return 0;
0;
never executed: return 0;
0
1114}-
1115void QPictureIO::defineIOHandler(const char *format,-
1116 const char *header,-
1117 const char *flags,-
1118 picture_io_handler readPicture,-
1119 picture_io_handler writePicture)-
1120{-
1121 qt_init_picture_handlers();-
1122 if (QPHList *list = pictureHandlers()
QPHList *list ...tureHandlers()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1123 QPictureHandler *p;-
1124 p = new QPictureHandler(format, header, QByteArray(flags), readPicture, writePicture);-
1125 list->prepend(p);-
1126 }
never executed: end of block
0
1127}
never executed: end of block
0
1128const QPicture &QPictureIO::picture() const { return
never executed: return d->pi;
d->pi;
never executed: return d->pi;
}
0
1129-
1130-
1131-
1132-
1133-
1134-
1135-
1136int QPictureIO::status() const { return
never executed: return d->iostat;
d->iostat;
never executed: return d->iostat;
}
0
1137-
1138-
1139-
1140-
1141-
1142const char *QPictureIO::format() const { return
never executed: return d->frmt;
d->frmt;
never executed: return d->frmt;
}
0
1143-
1144-
1145-
1146-
1147-
1148-
1149QIODevice *QPictureIO::ioDevice() const { return
never executed: return d->iodev;
d->iodev;
never executed: return d->iodev;
}
0
1150-
1151-
1152-
1153-
1154-
1155-
1156QString QPictureIO::fileName() const { return
never executed: return d->fname;
d->fname;
never executed: return d->fname;
}
0
1157-
1158-
1159-
1160-
1161-
1162-
1163-
1164QString QPictureIO::description() const { return
never executed: return d->descr;
d->descr;
never executed: return d->descr;
}
0
1165-
1166-
1167-
1168-
1169-
1170-
1171void QPictureIO::setPicture(const QPicture &picture)-
1172{-
1173 d->pi = picture;-
1174}
never executed: end of block
0
1175-
1176-
1177-
1178-
1179-
1180-
1181-
1182void QPictureIO::setStatus(int status)-
1183{-
1184 d->iostat = status;-
1185}
never executed: end of block
0
1186void QPictureIO::setFormat(const char *format)-
1187{-
1188 d->frmt = format;-
1189}
never executed: end of block
0
1190void QPictureIO::setIODevice(QIODevice *ioDevice)-
1191{-
1192 d->iodev = ioDevice;-
1193}
never executed: end of block
0
1194-
1195-
1196-
1197-
1198-
1199-
1200-
1201void QPictureIO::setFileName(const QString &fileName)-
1202{-
1203 d->fname = fileName;-
1204}
never executed: end of block
0
1205-
1206-
1207-
1208-
1209-
1210-
1211-
1212int QPictureIO::quality() const-
1213{-
1214 return
never executed: return d->quality;
d->quality;
never executed: return d->quality;
0
1215}-
1216void QPictureIO::setQuality(int q)-
1217{-
1218 d->quality = q;-
1219}
never executed: end of block
0
1220-
1221-
1222-
1223-
1224-
1225-
1226-
1227const char *QPictureIO::parameters() const-
1228{-
1229 return
never executed: return d->parameters;
d->parameters;
never executed: return d->parameters;
0
1230}-
1231void QPictureIO::setParameters(const char *parameters)-
1232{-
1233 if (d->parameters
d->parametersDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1234 delete [] d->parameters;
never executed: delete [] d->parameters;
0
1235 d->parameters = qstrdup(parameters);-
1236}
never executed: end of block
0
1237void QPictureIO::setGamma(float gamma)-
1238{-
1239 d->gamma=gamma;-
1240}
never executed: end of block
0
1241-
1242-
1243-
1244-
1245-
1246-
1247float QPictureIO::gamma() const-
1248{-
1249 return
never executed: return d->gamma;
d->gamma;
never executed: return d->gamma;
0
1250}-
1251void QPictureIO::setDescription(const QString &description)-
1252{-
1253 d->descr = description;-
1254}
never executed: end of block
0
1255QByteArray QPictureIO::pictureFormat(const QString &fileName)-
1256{-
1257 QFile file(fileName);-
1258 QByteArray format;-
1259 if (!file.open(QIODevice::ReadOnly)
!file.open(QIO...ice::ReadOnly)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1260 return
never executed: return format;
format;
never executed: return format;
0
1261 format = pictureFormat(&file);-
1262 file.close();-
1263 return
never executed: return format;
format;
never executed: return format;
0
1264}-
1265QByteArray QPictureIO::pictureFormat(QIODevice *d)-
1266{-
1267-
1268 const int buflen = 14;-
1269-
1270 char buf[buflen];-
1271 char buf2[buflen];-
1272 qt_init_picture_handlers();-
1273 qt_init_picture_plugins();-
1274 int pos = d->pos();-
1275 int rdlen = d->read(buf, buflen);-
1276-
1277 QByteArray format;-
1278 if (rdlen != buflen
rdlen != buflenDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1279 return
never executed: return format;
format;
never executed: return format;
0
1280-
1281 memcpy(buf2, buf, buflen);-
1282-
1283 for (int n = 0; n < rdlen
n < rdlenDescription
TRUEnever evaluated
FALSEnever evaluated
; n++)
0
1284 if (buf[n] == '\0'
buf[n] == '\0'Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1285 buf[n] = '\001';
never executed: buf[n] = '\001';
0
1286 if (rdlen > 0
rdlen > 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1287 buf[rdlen - 1] = '\0';-
1288 QString bufStr = QString::fromLatin1(buf);-
1289 if (QPHList *list = pictureHandlers()
QPHList *list ...tureHandlers()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1290 for (int i = 0; i < list->size()
i < list->size()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
1291 if (list->at(i)->header.indexIn(bufStr) != -1
list->at(i)->h...(bufStr) != -1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1292 format = list->at(i)->format;-
1293 break;
never executed: break;
0
1294 }-
1295 }
never executed: end of block
0
1296 }
never executed: end of block
0
1297 }
never executed: end of block
0
1298 d->seek(pos);-
1299 return
never executed: return format;
format;
never executed: return format;
0
1300}-
1301-
1302-
1303-
1304-
1305-
1306QList<QByteArray> QPictureIO::inputFormats()-
1307{-
1308 QList<QByteArray> result;-
1309-
1310 qt_init_picture_handlers();-
1311 qt_init_picture_plugins();-
1312-
1313 if (QPHList *list = pictureHandlers()
QPHList *list ...tureHandlers()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1314 for (int i = 0; i < list->size()
i < list->size()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
1315 QPictureHandler *p = list->at(i);-
1316 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
1317 result.append(p->format);
never executed: result.append(p->format);
0
1318 }
never executed: end of block
0
1319 }
never executed: end of block
0
1320 std::sort(result.begin(), result.end());-
1321-
1322 return
never executed: return result;
result;
never executed: return result;
0
1323}-
1324-
1325-
1326-
1327-
1328-
1329QList<QByteArray> QPictureIO::outputFormats()-
1330{-
1331 qt_init_picture_handlers();-
1332 qt_init_picture_plugins();-
1333-
1334 QList<QByteArray> result;-
1335 if (QPHList *list = pictureHandlers()
QPHList *list ...tureHandlers()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1336 for (int i = 0; i < list->size()
i < list->size()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
1337 QPictureHandler *p = list->at(i);-
1338 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
1339 result.append(p->format);
never executed: result.append(p->format);
0
1340 }
never executed: end of block
0
1341 }
never executed: end of block
0
1342 return
never executed: return result;
result;
never executed: return result;
0
1343}-
1344bool QPictureIO::read()-
1345{-
1346 QFile file;-
1347 const char *picture_format;-
1348 QPictureHandler *h;-
1349-
1350 if (d->iodev
d->iodevDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1351-
1352 }
never executed: end of block
else if (!d->fname.isEmpty()
!d->fname.isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1353 file.setFileName(d->fname);-
1354 if (!file.open(QIODevice::ReadOnly)
!file.open(QIO...ice::ReadOnly)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1355 return
never executed: return false;
false;
never executed: return false;
0
1356 d->iodev = &file;-
1357 }
never executed: end of block
else {
0
1358 return
never executed: return false;
false;
never executed: return false;
0
1359 }-
1360 if (d->frmt.isEmpty()
d->frmt.isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1361-
1362 picture_format = pictureFormat(d->iodev);-
1363 if (!picture_format
!picture_formatDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1364 if (file.isOpen()
file.isOpen()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1365 file.close();-
1366 d->iodev = 0;-
1367 }
never executed: end of block
0
1368 return
never executed: return false;
false;
never executed: return false;
0
1369 }-
1370 }
never executed: end of block
else {
0
1371 picture_format = d->frmt;-
1372 }
never executed: end of block
0
1373-
1374 h = get_picture_handler(picture_format);-
1375 if (file.isOpen()
file.isOpen()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1376-
1377-
1378-
1379-
1380-
1381-
1382-
1383 file.seek(0);-
1384 }
never executed: end of block
0
1385 d->iostat = 1;-
1386-
1387 if (h
hDescription
TRUEnever evaluated
FALSEnever evaluated
&& h->read_picture
h->read_pictureDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1388 (*
never executed: (*h->read_picture)(this);
h->read_picture)(this);
never executed: (*h->read_picture)(this);
0
1389-
1390 if (file.isOpen()
file.isOpen()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1391 file.close();-
1392 d->iodev = 0;-
1393 }
never executed: end of block
0
1394 return
never executed: return d->iostat == 0;
d->iostat == 0;
never executed: return d->iostat == 0;
0
1395}-
1396bool QPictureIO::write()-
1397{-
1398 if (d->frmt.isEmpty()
d->frmt.isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1399 return
never executed: return false;
false;
never executed: return false;
0
1400 QPictureHandler *h = get_picture_handler(d->frmt);-
1401 if (!h
!hDescription
TRUEnever evaluated
FALSEnever evaluated
|| !h->write_picture
!h->write_pictureDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1402 QMessageLogger(__FILE__, 1929, __PRETTY_FUNCTION__).warning("QPictureIO::write: No such picture format handler: %s",-
1403 format());-
1404 return
never executed: return false;
false;
never executed: return false;
0
1405 }-
1406 QFile file;-
1407 if (!d->iodev
!d->iodevDescription
TRUEnever evaluated
FALSEnever evaluated
&& !d->fname.isEmpty()
!d->fname.isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1408 file.setFileName(d->fname);-
1409 bool translate = h->text_mode==QPictureHandler::TranslateInOut;-
1410 QIODevice::OpenMode fmode = translate
translateDescription
TRUEnever evaluated
FALSEnever evaluated
? QIODevice::WriteOnly | QIODevice::Text : QIODevice::OpenMode(QIODevice::WriteOnly);
0
1411 if (!file.open(fmode)
!file.open(fmode)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1412 return
never executed: return false;
false;
never executed: return false;
0
1413 d->iodev = &file;-
1414 }
never executed: end of block
0
1415 d->iostat = 1;-
1416 (*h->write_picture)(this);-
1417 if (file.isOpen()
file.isOpen()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1418 file.close();-
1419 d->iodev = 0;-
1420 }
never executed: end of block
0
1421 return
never executed: return d->iostat == 0;
d->iostat == 0;
never executed: return d->iostat == 0;
0
1422}-
1423-
1424-
1425-
Switch to Source codePreprocessed file

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