summaryrefslogtreecommitdiffstats
path: root/src/plugins/imageformats
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@nokia.com>2010-07-01 17:24:01 (GMT)
committerThiago Macieira <thiago.macieira@nokia.com>2010-07-01 17:24:01 (GMT)
commit745ecfd8925716d962c97a4415881377faf6bdd5 (patch)
treec4f78b3bd143af52372064cd3ba5c0ae440813c5 /src/plugins/imageformats
parentbda164303570629e44185e8baa52908ced6da301 (diff)
parent8968c79c575755cdb52d5e615ed19e4529047464 (diff)
downloadQt-745ecfd8925716d962c97a4415881377faf6bdd5.zip
Qt-745ecfd8925716d962c97a4415881377faf6bdd5.tar.gz
Qt-745ecfd8925716d962c97a4415881377faf6bdd5.tar.bz2
Merge remote branch 'origin/4.7' into qt-master-from-4.7
Conflicts: bin/syncqt src/gui/text/qtextlayout.cpp tools/assistant/tools/assistant/helpviewer_qwv.cpp tools/assistant/tools/assistant/helpviewer_qwv.h tools/configure/configureapp.cpp
Diffstat (limited to 'src/plugins/imageformats')
-rw-r--r--src/plugins/imageformats/gif/qgifhandler.cpp20
-rw-r--r--src/plugins/imageformats/jpeg/jpeg.pro17
-rw-r--r--src/plugins/imageformats/jpeg/qjpeghandler.cpp10
-rw-r--r--src/plugins/imageformats/mng/mng.pro62
-rw-r--r--src/plugins/imageformats/mng/qmnghandler.cpp9
-rw-r--r--src/plugins/imageformats/tiff/tiff.pro119
6 files changed, 126 insertions, 111 deletions
diff --git a/src/plugins/imageformats/gif/qgifhandler.cpp b/src/plugins/imageformats/gif/qgifhandler.cpp
index 8abc2d1..129a11b 100644
--- a/src/plugins/imageformats/gif/qgifhandler.cpp
+++ b/src/plugins/imageformats/gif/qgifhandler.cpp
@@ -132,8 +132,8 @@ private:
int code_size, clear_code, end_code, max_code_size, max_code;
int firstcode, oldcode, incode;
- short table[2][1<< max_lzw_bits];
- short stack[(1<<(max_lzw_bits))*2];
+ short* table[2];
+ short* stack;
short *sp;
bool needfirst;
int x, y;
@@ -162,6 +162,9 @@ QGIFFormat::QGIFFormat()
lcmap = false;
newFrame = false;
partialNewFrame = false;
+ table[0] = 0;
+ table[1] = 0;
+ stack = 0;
}
/*!
@@ -171,6 +174,7 @@ QGIFFormat::~QGIFFormat()
{
if (globalcmap) delete[] globalcmap;
if (localcmap) delete[] localcmap;
+ delete [] stack;
}
void QGIFFormat::disposePrevious(QImage *image)
@@ -237,6 +241,12 @@ int QGIFFormat::decode(QImage *image, const uchar *buffer, int length,
// CompuServe Incorporated. GIF(sm) is a Service Mark property of
// CompuServe Incorporated."
+ if (!stack) {
+ stack = new short[(1 << max_lzw_bits) * 4];
+ table[0] = &stack[(1 << max_lzw_bits) * 2];
+ table[1] = &stack[(1 << max_lzw_bits) * 3];
+ }
+
image->detach();
int bpl = image->bytesPerLine();
unsigned char *bits = image->bits();
@@ -1026,7 +1036,7 @@ inline QRgb QGIFFormat::color(uchar index) const
QGifHandler::QGifHandler()
{
gifFormat = new QGIFFormat;
- nextDelay = 0;
+ nextDelay = 100;
loopCnt = 1;
frameNumber = -1;
scanIsCached = false;
@@ -1061,12 +1071,12 @@ bool QGifHandler::imageIsComing() const
bool QGifHandler::canRead() const
{
- if (!nextDelay && canRead(device())) {
+ if (canRead(device()) || imageIsComing()) {
setFormat("gif");
return true;
}
- return imageIsComing();
+ return false;
}
bool QGifHandler::canRead(QIODevice *device)
diff --git a/src/plugins/imageformats/jpeg/jpeg.pro b/src/plugins/imageformats/jpeg/jpeg.pro
index 5b45422..d4b0fef 100644
--- a/src/plugins/imageformats/jpeg/jpeg.pro
+++ b/src/plugins/imageformats/jpeg/jpeg.pro
@@ -7,10 +7,10 @@ HEADERS += qjpeghandler.h
SOURCES += main.cpp \
qjpeghandler.cpp
-wince*: {
- DEFINES += NO_GETENV
- contains(CE_ARCH,x86):CONFIG -= stl exceptions
- contains(CE_ARCH,x86):CONFIG += exceptions_off
+wince*: {
+ DEFINES += NO_GETENV
+ contains(CE_ARCH,x86):CONFIG -= stl exceptions
+ contains(CE_ARCH,x86):CONFIG += exceptions_off
}
#Disable warnings in 3rdparty code due to unused arguments
@@ -18,14 +18,13 @@ symbian: {
QMAKE_CXXFLAGS.CW += -W nounusedarg
TARGET.UID3=0x2001E61B
} else:contains(QMAKE_CC, gcc): {
- QMAKE_CFLAGS_WARN_ON += -Wno-unused-parameter -Wno-main
+ QMAKE_CFLAGS_WARN_ON += -Wno-unused-parameter -Wno-main
}
contains(QT_CONFIG, system-jpeg) {
- unix:LIBS += -ljpeg
- win32:LIBS += libjpeg.lib
-}
-!contains(QT_CONFIG, system-jpeg) {
+ unix|win32-g++*:LIBS += -ljpeg
+ win32:!win32-g++*:LIBS += libjpeg.lib
+} else {
INCLUDEPATH += ../../../3rdparty/libjpeg
SOURCES += \
../../../3rdparty/libjpeg/jaricom.c \
diff --git a/src/plugins/imageformats/jpeg/qjpeghandler.cpp b/src/plugins/imageformats/jpeg/qjpeghandler.cpp
index 72dde15..60e7cce 100644
--- a/src/plugins/imageformats/jpeg/qjpeghandler.cpp
+++ b/src/plugins/imageformats/jpeg/qjpeghandler.cpp
@@ -802,13 +802,15 @@ QJpegHandler::~QJpegHandler()
bool QJpegHandler::canRead() const
{
- if(d->state == QJpegHandlerPrivate::Ready) {
- if (!canRead(device()))
- return false;
+ if(d->state == QJpegHandlerPrivate::Ready && !canRead(device()))
+ return false;
+
+ if (d->state != QJpegHandlerPrivate::Error) {
setFormat("jpeg");
return true;
}
- return d->state != QJpegHandlerPrivate::Error;
+
+ return false;
}
bool QJpegHandler::canRead(QIODevice *device)
diff --git a/src/plugins/imageformats/mng/mng.pro b/src/plugins/imageformats/mng/mng.pro
index de7dfa7..158f41a 100644
--- a/src/plugins/imageformats/mng/mng.pro
+++ b/src/plugins/imageformats/mng/mng.pro
@@ -14,40 +14,40 @@ symbian: {
}
contains(QT_CONFIG, system-mng) {
- unix:LIBS += -lmng
- win32:LIBS += libmng.lib
-}
-!contains(QT_CONFIG, system-mng) {
- DEFINES += MNG_BUILD_SO
- DEFINES += MNG_NO_INCLUDE_JNG
- INCLUDEPATH += ../../../3rdparty/libmng
- SOURCES += \
- ../../../3rdparty/libmng/libmng_callback_xs.c \
- ../../../3rdparty/libmng/libmng_chunk_io.c \
- ../../../3rdparty/libmng/libmng_chunk_descr.c \
- ../../../3rdparty/libmng/libmng_chunk_prc.c \
- ../../../3rdparty/libmng/libmng_chunk_xs.c \
- ../../../3rdparty/libmng/libmng_cms.c \
- ../../../3rdparty/libmng/libmng_display.c \
- ../../../3rdparty/libmng/libmng_dither.c \
- ../../../3rdparty/libmng/libmng_error.c \
- ../../../3rdparty/libmng/libmng_filter.c \
- ../../../3rdparty/libmng/libmng_hlapi.c \
- ../../../3rdparty/libmng/libmng_jpeg.c \
- ../../../3rdparty/libmng/libmng_object_prc.c \
- ../../../3rdparty/libmng/libmng_pixels.c \
- ../../../3rdparty/libmng/libmng_prop_xs.c \
- ../../../3rdparty/libmng/libmng_read.c \
- ../../../3rdparty/libmng/libmng_trace.c \
- ../../../3rdparty/libmng/libmng_write.c \
- ../../../3rdparty/libmng/libmng_zlib.c
+ unix|win32-g++*:LIBS += -lmng
+ win32:!win32-g++*:LIBS += libmng.lib
+} else {
+ DEFINES += MNG_BUILD_SO
+ DEFINES += MNG_NO_INCLUDE_JNG
+ INCLUDEPATH += ../../../3rdparty/libmng
+ SOURCES += \
+ ../../../3rdparty/libmng/libmng_callback_xs.c \
+ ../../../3rdparty/libmng/libmng_chunk_io.c \
+ ../../../3rdparty/libmng/libmng_chunk_descr.c \
+ ../../../3rdparty/libmng/libmng_chunk_prc.c \
+ ../../../3rdparty/libmng/libmng_chunk_xs.c \
+ ../../../3rdparty/libmng/libmng_cms.c \
+ ../../../3rdparty/libmng/libmng_display.c \
+ ../../../3rdparty/libmng/libmng_dither.c \
+ ../../../3rdparty/libmng/libmng_error.c \
+ ../../../3rdparty/libmng/libmng_filter.c \
+ ../../../3rdparty/libmng/libmng_hlapi.c \
+ ../../../3rdparty/libmng/libmng_jpeg.c \
+ ../../../3rdparty/libmng/libmng_object_prc.c \
+ ../../../3rdparty/libmng/libmng_pixels.c \
+ ../../../3rdparty/libmng/libmng_prop_xs.c \
+ ../../../3rdparty/libmng/libmng_read.c \
+ ../../../3rdparty/libmng/libmng_trace.c \
+ ../../../3rdparty/libmng/libmng_write.c \
+ ../../../3rdparty/libmng/libmng_zlib.c
}
contains(QT_CONFIG, system-zlib) {
- LIBS += -lz
-}
-!contains(QT_CONFIG, system-zlib) {
- INCLUDEPATH += ../../../3rdparty/zlib
+ symbian:LIBS_PRIVATE += -llibz
+ else:if(unix|win32-g++*):LIBS_PRIVATE += -lz
+ else:LIBS += zdll.lib
+} else {
+ INCLUDEPATH += ../../../3rdparty/zlib
}
QTDIR_build:DESTDIR = $$QT_BUILD_TREE/plugins/imageformats
diff --git a/src/plugins/imageformats/mng/qmnghandler.cpp b/src/plugins/imageformats/mng/qmnghandler.cpp
index d408e6c..ec442a1 100644
--- a/src/plugins/imageformats/mng/qmnghandler.cpp
+++ b/src/plugins/imageformats/mng/qmnghandler.cpp
@@ -271,7 +271,6 @@ bool QMngHandlerPrivate::getNextImage(QImage *result)
}
if ((MNG_NOERROR == ret) || (MNG_NEEDTIMERWAIT == ret)) {
*result = image;
- image.fill(0);
frameIndex = nextIndex++;
if (haveReadAll && (frameCount == 0))
frameCount = nextIndex;
@@ -381,10 +380,10 @@ QMngHandler::~QMngHandler()
bool QMngHandler::canRead() const
{
Q_D(const QMngHandler);
- if (!d->haveReadNone)
- return (!d->haveReadAll || (d->haveReadAll && (d->nextIndex < d->frameCount)));
-
- if (canRead(device())) {
+ if ((!d->haveReadNone
+ && (!d->haveReadAll || (d->haveReadAll && (d->nextIndex < d->frameCount))))
+ || canRead(device()))
+ {
setFormat("mng");
return true;
}
diff --git a/src/plugins/imageformats/tiff/tiff.pro b/src/plugins/imageformats/tiff/tiff.pro
index 3cb64ad..08e471c 100644
--- a/src/plugins/imageformats/tiff/tiff.pro
+++ b/src/plugins/imageformats/tiff/tiff.pro
@@ -8,66 +8,71 @@ SOURCES += main.cpp \
qtiffhandler.cpp
contains(QT_CONFIG, system-tiff) {
- unix:LIBS += -ltiff
- win32:LIBS += libtiff.lib
-}
-!contains(QT_CONFIG, system-tiff) {
- INCLUDEPATH += ../../../3rdparty/libtiff/libtiff
- SOURCES += \
- ../../../3rdparty/libtiff/libtiff/tif_aux.c \
- ../../../3rdparty/libtiff/libtiff/tif_close.c \
- ../../../3rdparty/libtiff/libtiff/tif_codec.c \
- ../../../3rdparty/libtiff/libtiff/tif_color.c \
- ../../../3rdparty/libtiff/libtiff/tif_compress.c \
- ../../../3rdparty/libtiff/libtiff/tif_dir.c \
- ../../../3rdparty/libtiff/libtiff/tif_dirinfo.c \
- ../../../3rdparty/libtiff/libtiff/tif_dirread.c \
- ../../../3rdparty/libtiff/libtiff/tif_dirwrite.c \
- ../../../3rdparty/libtiff/libtiff/tif_dumpmode.c \
- ../../../3rdparty/libtiff/libtiff/tif_error.c \
- ../../../3rdparty/libtiff/libtiff/tif_extension.c \
- ../../../3rdparty/libtiff/libtiff/tif_fax3.c \
- ../../../3rdparty/libtiff/libtiff/tif_fax3sm.c \
- ../../../3rdparty/libtiff/libtiff/tif_flush.c \
- ../../../3rdparty/libtiff/libtiff/tif_getimage.c \
- ../../../3rdparty/libtiff/libtiff/tif_luv.c \
- ../../../3rdparty/libtiff/libtiff/tif_lzw.c \
- ../../../3rdparty/libtiff/libtiff/tif_next.c \
- ../../../3rdparty/libtiff/libtiff/tif_open.c \
- ../../../3rdparty/libtiff/libtiff/tif_packbits.c \
- ../../../3rdparty/libtiff/libtiff/tif_pixarlog.c \
- ../../../3rdparty/libtiff/libtiff/tif_predict.c \
- ../../../3rdparty/libtiff/libtiff/tif_print.c \
- ../../../3rdparty/libtiff/libtiff/tif_read.c \
- ../../../3rdparty/libtiff/libtiff/tif_strip.c \
- ../../../3rdparty/libtiff/libtiff/tif_swab.c \
- ../../../3rdparty/libtiff/libtiff/tif_thunder.c \
- ../../../3rdparty/libtiff/libtiff/tif_tile.c \
- ../../../3rdparty/libtiff/libtiff/tif_version.c \
- ../../../3rdparty/libtiff/libtiff/tif_warning.c \
- ../../../3rdparty/libtiff/libtiff/tif_write.c \
- ../../../3rdparty/libtiff/libtiff/tif_zip.c
- win32:!wince*: {
- SOURCES += ../../../3rdparty/libtiff/libtiff/tif_win32.c
- }
- unix: {
- SOURCES += ../../../3rdparty/libtiff/libtiff/tif_unix.c
- }
- wince*: {
- SOURCES += ../../../corelib/kernel/qfunctions_wince.cpp \
- ../../../3rdparty/libtiff/libtiff/tif_wince.c \
- ../../../3rdparty/libtiff/libtiff/tif_win32.c
- }
- symbian: {
- SOURCES += ../../../3rdparty/libtiff/port/lfind.c
- }
+ unix|win32-g++*:LIBS += -ltiff
+ win32:!win32-g++*:LIBS += libtiff.lib
+
+ contains(QT_CONFIG, system-jpeg) {
+ unix|win32-g++*:LIBS += -ljpeg
+ win32:!win32-g++*:LIBS += libjpeg.lib
+ }
+} else {
+ INCLUDEPATH += ../../../3rdparty/libtiff/libtiff
+ SOURCES += \
+ ../../../3rdparty/libtiff/libtiff/tif_aux.c \
+ ../../../3rdparty/libtiff/libtiff/tif_close.c \
+ ../../../3rdparty/libtiff/libtiff/tif_codec.c \
+ ../../../3rdparty/libtiff/libtiff/tif_color.c \
+ ../../../3rdparty/libtiff/libtiff/tif_compress.c \
+ ../../../3rdparty/libtiff/libtiff/tif_dir.c \
+ ../../../3rdparty/libtiff/libtiff/tif_dirinfo.c \
+ ../../../3rdparty/libtiff/libtiff/tif_dirread.c \
+ ../../../3rdparty/libtiff/libtiff/tif_dirwrite.c \
+ ../../../3rdparty/libtiff/libtiff/tif_dumpmode.c \
+ ../../../3rdparty/libtiff/libtiff/tif_error.c \
+ ../../../3rdparty/libtiff/libtiff/tif_extension.c \
+ ../../../3rdparty/libtiff/libtiff/tif_fax3.c \
+ ../../../3rdparty/libtiff/libtiff/tif_fax3sm.c \
+ ../../../3rdparty/libtiff/libtiff/tif_flush.c \
+ ../../../3rdparty/libtiff/libtiff/tif_getimage.c \
+ ../../../3rdparty/libtiff/libtiff/tif_luv.c \
+ ../../../3rdparty/libtiff/libtiff/tif_lzw.c \
+ ../../../3rdparty/libtiff/libtiff/tif_next.c \
+ ../../../3rdparty/libtiff/libtiff/tif_open.c \
+ ../../../3rdparty/libtiff/libtiff/tif_packbits.c \
+ ../../../3rdparty/libtiff/libtiff/tif_pixarlog.c \
+ ../../../3rdparty/libtiff/libtiff/tif_predict.c \
+ ../../../3rdparty/libtiff/libtiff/tif_print.c \
+ ../../../3rdparty/libtiff/libtiff/tif_read.c \
+ ../../../3rdparty/libtiff/libtiff/tif_strip.c \
+ ../../../3rdparty/libtiff/libtiff/tif_swab.c \
+ ../../../3rdparty/libtiff/libtiff/tif_thunder.c \
+ ../../../3rdparty/libtiff/libtiff/tif_tile.c \
+ ../../../3rdparty/libtiff/libtiff/tif_version.c \
+ ../../../3rdparty/libtiff/libtiff/tif_warning.c \
+ ../../../3rdparty/libtiff/libtiff/tif_write.c \
+ ../../../3rdparty/libtiff/libtiff/tif_zip.c
+ win32:!wince*: {
+ SOURCES += ../../../3rdparty/libtiff/libtiff/tif_win32.c
+ }
+ unix: {
+ SOURCES += ../../../3rdparty/libtiff/libtiff/tif_unix.c
+ }
+ wince*: {
+ SOURCES += ../../../corelib/kernel/qfunctions_wince.cpp \
+ ../../../3rdparty/libtiff/libtiff/tif_wince.c \
+ ../../../3rdparty/libtiff/libtiff/tif_win32.c
+ }
+ symbian: {
+ SOURCES += ../../../3rdparty/libtiff/port/lfind.c
+ }
}
contains(QT_CONFIG, system-zlib) {
- LIBS += -lz
-}
-!contains(QT_CONFIG, system-zlib) {
- INCLUDEPATH += ../../../3rdparty/zlib
+ symbian:LIBS_PRIVATE += -llibz
+ else:if(unix|win32-g++*):LIBS_PRIVATE += -lz
+ else:LIBS += zdll.lib
+} else {
+ INCLUDEPATH += ../../../3rdparty/zlib
}
QTDIR_build:DESTDIR = $$QT_BUILD_TREE/plugins/imageformats