diff options
author | Frans Englich <frans.englich@nokia.com> | 2009-11-16 11:52:15 (GMT) |
---|---|---|
committer | Frans Englich <frans.englich@nokia.com> | 2009-11-16 11:52:15 (GMT) |
commit | 15e2b2d753250bbe01a78d9ece37f0f0b08cd21c (patch) | |
tree | a37bb70124fdbecbbaf7e0e2a141a359eaf4f412 /src/gui/image | |
parent | 3328e0ee94b94c83fe9d64f741bede6725f5c952 (diff) | |
parent | 7fdfa58b958b658feb7b20dd7a7322d235fe4bea (diff) | |
download | Qt-15e2b2d753250bbe01a78d9ece37f0f0b08cd21c.zip Qt-15e2b2d753250bbe01a78d9ece37f0f0b08cd21c.tar.gz Qt-15e2b2d753250bbe01a78d9ece37f0f0b08cd21c.tar.bz2 |
Merge branch '4.6' into mmfphonon
Diffstat (limited to 'src/gui/image')
-rw-r--r-- | src/gui/image/qbitmap.cpp | 2 | ||||
-rw-r--r-- | src/gui/image/qimage.cpp | 33 | ||||
-rw-r--r-- | src/gui/image/qpaintengine_pic.cpp | 4 | ||||
-rw-r--r-- | src/gui/image/qpicture.cpp | 4 | ||||
-rw-r--r-- | src/gui/image/qpixmap.cpp | 4 | ||||
-rw-r--r-- | src/gui/image/qpixmap_raster.cpp | 4 | ||||
-rw-r--r-- | src/gui/image/qpixmap_s60.cpp | 9 | ||||
-rw-r--r-- | src/gui/image/qpixmap_x11.cpp | 4 | ||||
-rw-r--r-- | src/gui/image/qpixmapfilter.cpp | 3 | ||||
-rw-r--r-- | src/gui/image/qpixmapfilter_p.h | 2 | ||||
-rw-r--r-- | src/gui/image/qpnghandler.cpp | 4 |
11 files changed, 40 insertions, 33 deletions
diff --git a/src/gui/image/qbitmap.cpp b/src/gui/image/qbitmap.cpp index e081735..4b8d4b8 100644 --- a/src/gui/image/qbitmap.cpp +++ b/src/gui/image/qbitmap.cpp @@ -86,7 +86,7 @@ QT_BEGIN_NAMESPACE object. Just like the QPixmap class, QBitmap is optimized by the use of - implicit data sharing. For more information, see the {Implicit + implicit data sharing. For more information, see the \l {Implicit Data Sharing} documentation. \sa QPixmap, QImage, QImageReader, QImageWriter diff --git a/src/gui/image/qimage.cpp b/src/gui/image/qimage.cpp index 571ef9d..2cf8597 100644 --- a/src/gui/image/qimage.cpp +++ b/src/gui/image/qimage.cpp @@ -4083,7 +4083,8 @@ QImage QImage::createAlphaMask(Qt::ImageConversionFlags flags) const } QImage mask(d->width, d->height, Format_MonoLSB); - dither_to_Mono(mask.d, d, flags, true); + if (!mask.isNull()) + dither_to_Mono(mask.d, d, flags, true); return mask; } @@ -5312,19 +5313,19 @@ int QImage::metric(PaintDeviceMetric metric) const break; case PdmDpiX: - return qRound(d->dpmx * 0.0254); + return qRound(d->dpmx * qreal(0.0254)); break; case PdmDpiY: - return qRound(d->dpmy * 0.0254); + return qRound(d->dpmy * qreal(0.0254)); break; case PdmPhysicalDpiX: - return qRound(d->dpmx * 0.0254); + return qRound(d->dpmx * qreal(0.0254)); break; case PdmPhysicalDpiY: - return qRound(d->dpmy * 0.0254); + return qRound(d->dpmy * qreal(0.0254)); break; default: @@ -5390,12 +5391,12 @@ bool qt_xForm_helper(const QTransform &trueMat, int xoffset, int type, int depth uchar *dptr, int dbpl, int p_inc, int dHeight, const uchar *sptr, int sbpl, int sWidth, int sHeight) { - int m11 = int(trueMat.m11()*4096.0); - int m12 = int(trueMat.m12()*4096.0); - int m21 = int(trueMat.m21()*4096.0); - int m22 = int(trueMat.m22()*4096.0); - int dx = qRound(trueMat.dx()*4096.0); - int dy = qRound(trueMat.dy()*4096.0); + int m11 = int(trueMat.m11()*qreal(4096.0)); + int m12 = int(trueMat.m12()*qreal(4096.0)); + int m21 = int(trueMat.m21()*qreal(4096.0)); + int m22 = int(trueMat.m22()*qreal(4096.0)); + int dx = qRound(trueMat.dx()*qreal(4096.0)); + int dy = qRound(trueMat.dy()*qreal(4096.0)); int m21ydx = dx + (xoffset<<16) + (m11 + m21) / 2; int m22ydy = dy + (m12 + m22) / 2; @@ -5979,22 +5980,22 @@ QImage QImage::transformed(const QTransform &matrix, Qt::TransformationMode mode if (mat.type() <= QTransform::TxScale) { if (mat.type() == QTransform::TxNone) // identity matrix return *this; - else if (mat.m11() == -1. && mat.m22() == -1.) + else if (mat.m11() == qreal(-1.) && mat.m22() == qreal(-1.)) return rotated180(*this); if (mode == Qt::FastTransformation) { hd = qRound(qAbs(mat.m22()) * hs); wd = qRound(qAbs(mat.m11()) * ws); } else { - hd = int(qAbs(mat.m22()) * hs + 0.9999); - wd = int(qAbs(mat.m11()) * ws + 0.9999); + hd = int(qAbs(mat.m22()) * hs + qreal(0.9999)); + wd = int(qAbs(mat.m11()) * ws + qreal(0.9999)); } scale_xform = true; } else { if (mat.type() <= QTransform::TxRotate && mat.m11() == 0 && mat.m22() == 0) { - if (mat.m12() == 1. && mat.m21() == -1.) + if (mat.m12() == qreal(1.) && mat.m21() == qreal(-1.)) return rotated90(*this); - else if (mat.m12() == -1. && mat.m21() == 1.) + else if (mat.m12() == qreal(-1.) && mat.m21() == qreal(1.)) return rotated270(*this); } diff --git a/src/gui/image/qpaintengine_pic.cpp b/src/gui/image/qpaintengine_pic.cpp index 80b16cf..b6fea8b 100644 --- a/src/gui/image/qpaintengine_pic.cpp +++ b/src/gui/image/qpaintengine_pic.cpp @@ -342,7 +342,7 @@ void QPicturePaintEngine::writeCmdLength(int pos, const QRectF &r, bool corr) } d->pic_d->pictb.seek(newpos); // set to new position - if (br.width() > 0.0 || br.height() > 0.0) { + if (br.width() > qreal(0.0) || br.height() > qreal(0.0)) { if (corr) { // widen bounding rect int w2 = painter()->pen().width() / 2; br.setCoords(br.left() - w2, br.top() - w2, @@ -354,7 +354,7 @@ void QPicturePaintEngine::writeCmdLength(int pos, const QRectF &r, bool corr) br &= cr; } - if (br.width() > 0.0 || br.height() > 0.0) { + if (br.width() > qreal(0.0) || br.height() > qreal(0.0)) { int minx = qFloor(br.left()); int miny = qFloor(br.top()); int maxx = qCeil(br.right()); diff --git a/src/gui/image/qpicture.cpp b/src/gui/image/qpicture.cpp index f502827..39a4fcc 100644 --- a/src/gui/image/qpicture.cpp +++ b/src/gui/image/qpicture.cpp @@ -967,10 +967,10 @@ int QPicture::metric(PaintDeviceMetric m) const val = brect.height(); break; case PdmWidthMM: - val = int(25.4/qt_defaultDpiX()*brect.width()); + val = int(qreal(25.4)/qt_defaultDpiX()*brect.width()); break; case PdmHeightMM: - val = int(25.4/qt_defaultDpiY()*brect.height()); + val = int(qreal(25.4)/qt_defaultDpiY()*brect.height()); break; case PdmDpiX: case PdmPhysicalDpiX: diff --git a/src/gui/image/qpixmap.cpp b/src/gui/image/qpixmap.cpp index c452b9a..dfeea76 100644 --- a/src/gui/image/qpixmap.cpp +++ b/src/gui/image/qpixmap.cpp @@ -639,13 +639,13 @@ void QPixmap::resize_helper(const QSize &s) QPixmap pm(QSize(w, h), data ? data->type : QPixmapData::PixmapType); bool uninit = false; #if defined(Q_WS_X11) - QX11PixmapData *x11Data = data->classId() == QPixmapData::X11Class ? static_cast<QX11PixmapData*>(data.data()) : 0; + QX11PixmapData *x11Data = data && data->classId() == QPixmapData::X11Class ? static_cast<QX11PixmapData*>(data.data()) : 0; if (x11Data) { pm.x11SetScreen(x11Data->xinfo.screen()); uninit = x11Data->flags & QX11PixmapData::Uninitialized; } #elif defined(Q_WS_MAC) - QMacPixmapData *macData = data->classId() == QPixmapData::MacClass ? static_cast<QMacPixmapData*>(data.data()) : 0; + QMacPixmapData *macData = data && data->classId() == QPixmapData::MacClass ? static_cast<QMacPixmapData*>(data.data()) : 0; if (macData) uninit = macData->uninit; #endif diff --git a/src/gui/image/qpixmap_raster.cpp b/src/gui/image/qpixmap_raster.cpp index fc76dc3..8560e5d 100644 --- a/src/gui/image/qpixmap_raster.cpp +++ b/src/gui/image/qpixmap_raster.cpp @@ -373,9 +373,9 @@ int QRasterPixmapData::metric(QPaintDevice::PaintDeviceMetric metric) const case QPaintDevice::PdmHeight: return h; case QPaintDevice::PdmWidthMM: - return qRound(d->width * 25.4 / qt_defaultDpiX()); + return qRound(d->width * qreal(25.4) / qt_defaultDpiX()); case QPaintDevice::PdmHeightMM: - return qRound(d->width * 25.4 / qt_defaultDpiY()); + return qRound(d->width * qreal(25.4) / qt_defaultDpiY()); case QPaintDevice::PdmNumColors: return d->colortable.size(); case QPaintDevice::PdmDepth: diff --git a/src/gui/image/qpixmap_s60.cpp b/src/gui/image/qpixmap_s60.cpp index cd8a4d4..6a999b4 100644 --- a/src/gui/image/qpixmap_s60.cpp +++ b/src/gui/image/qpixmap_s60.cpp @@ -568,6 +568,7 @@ int QS60PixmapData::metric(QPaintDevice::PaintDeviceMetric metric) const if (!cfbsBitmap) return 0; + qreal div_by_KTwipsPerInch = 1 / (qreal)KTwipsPerInch; switch (metric) { case QPaintDevice::PdmWidth: return cfbsBitmap->SizeInPixels().iWidth; @@ -575,23 +576,23 @@ int QS60PixmapData::metric(QPaintDevice::PaintDeviceMetric metric) const return cfbsBitmap->SizeInPixels().iHeight; case QPaintDevice::PdmWidthMM: { TInt twips = cfbsBitmap->SizeInTwips().iWidth; - return (int)(twips * (25.4/KTwipsPerInch)); + return (int)(twips * (qreal(25.4) * div_by_KTwipsPerInch)); } case QPaintDevice::PdmHeightMM: { TInt twips = cfbsBitmap->SizeInTwips().iHeight; - return (int)(twips * (25.4/KTwipsPerInch)); + return (int)(twips * (qreal(25.4) * div_by_KTwipsPerInch)); } case QPaintDevice::PdmNumColors: return TDisplayModeUtils::NumDisplayModeColors(cfbsBitmap->DisplayMode()); case QPaintDevice::PdmDpiX: case QPaintDevice::PdmPhysicalDpiX: { - TReal inches = cfbsBitmap->SizeInTwips().iWidth / (TReal)KTwipsPerInch; + qreal inches = cfbsBitmap->SizeInTwips().iWidth * div_by_KTwipsPerInch; TInt pixels = cfbsBitmap->SizeInPixels().iWidth; return pixels / inches; } case QPaintDevice::PdmDpiY: case QPaintDevice::PdmPhysicalDpiY: { - TReal inches = cfbsBitmap->SizeInTwips().iHeight / (TReal)KTwipsPerInch; + qreal inches = cfbsBitmap->SizeInTwips().iHeight * div_by_KTwipsPerInch; TInt pixels = cfbsBitmap->SizeInPixels().iHeight; return pixels / inches; } diff --git a/src/gui/image/qpixmap_x11.cpp b/src/gui/image/qpixmap_x11.cpp index 8a0120a..c735031 100644 --- a/src/gui/image/qpixmap_x11.cpp +++ b/src/gui/image/qpixmap_x11.cpp @@ -1916,8 +1916,8 @@ QPixmap QX11PixmapData::transformed(const QTransform &transform, free(dptr); return bm; } else { // color pixmap - QPixmap pm; - QX11PixmapData *x11Data = static_cast<QX11PixmapData*>(pm.data.data()); + QX11PixmapData *x11Data = new QX11PixmapData(QPixmapData::PixmapType); + QPixmap pm(x11Data); x11Data->flags &= ~QX11PixmapData::Uninitialized; x11Data->xinfo = xinfo; x11Data->d = d; diff --git a/src/gui/image/qpixmapfilter.cpp b/src/gui/image/qpixmapfilter.cpp index e50cc8b..d83ef2c 100644 --- a/src/gui/image/qpixmapfilter.cpp +++ b/src/gui/image/qpixmapfilter.cpp @@ -53,6 +53,7 @@ #include "private/qpaintengineex_p.h" #include "private/qpaintengine_raster_p.h" +#ifndef QT_NO_GRAPHICSEFFECT QT_BEGIN_NAMESPACE class QPixmapFilterPrivate : public QObjectPrivate @@ -1107,3 +1108,5 @@ void QPixmapDropShadowFilter::draw(QPainter *p, } QT_END_NAMESPACE + +#endif //QT_NO_GRAPHICSEFFECT diff --git a/src/gui/image/qpixmapfilter_p.h b/src/gui/image/qpixmapfilter_p.h index 6a96676..2573fc7 100644 --- a/src/gui/image/qpixmapfilter_p.h +++ b/src/gui/image/qpixmapfilter_p.h @@ -57,6 +57,7 @@ #include <QtGui/qpixmap.h> #include <QtGui/qgraphicseffect.h> +#ifndef QT_NO_GRAPHICSEFFECT QT_BEGIN_HEADER QT_BEGIN_NAMESPACE @@ -191,4 +192,5 @@ QT_END_NAMESPACE QT_END_HEADER +#endif //QT_NO_GRAPHICSEFFECT #endif // QPIXMAPFILTER_H diff --git a/src/gui/image/qpnghandler.cpp b/src/gui/image/qpnghandler.cpp index 44d689d..e520c63 100644 --- a/src/gui/image/qpnghandler.cpp +++ b/src/gui/image/qpnghandler.cpp @@ -732,8 +732,8 @@ bool Q_INTERNAL_WIN_NO_THROW QPNGImageWriter::writeImage(const QImage& image_in, png_set_compression_level(png_ptr, quality); } - if (gamma != 0.0) { - png_set_gAMA(png_ptr, info_ptr, 1.0/gamma); + if (gamma != qreal(0.0)) { + png_set_gAMA(png_ptr, info_ptr, qreal(1.0)/gamma); } png_set_write_fn(png_ptr, (void*)this, qpiw_write_fn, qpiw_flush_fn); |