Commit 73f25d1a authored by J-P Nurmi's avatar J-P Nurmi
Browse files

Merge remote-tracking branch 'origin/5.9' into dev

Conflicts:
	.qmake.conf

Change-Id: I55c144a1d0579aa19691c44c4f8ef8bf702189cb
parents 51ab877a 144a3535
No related merge requests found
Showing with 37 additions and 0 deletions
Qt 5.9.1 is a bug-fix release. It maintains both forward and backward
compatibility (source and binary) with Qt 5.9.0.
For more details, refer to the online documentation included in this
distribution. The documentation is also available online:
http://doc.qt.io/qt-5/index.html
The Qt version 5.9 series is binary compatible with the 5.8.x series.
Applications compiled for 5.8 will continue to run with 5.9.
Some of the changes listed in this file include issue tracking numbers
corresponding to tasks in the Qt Bug Tracker:
https://bugreports.qt.io/
Each of these identifiers can be entered in the bug tracker to obtain more
information about a particular change.
****************************************************************************
* Library *
****************************************************************************
- This release contains only minor code improvements.
...@@ -65,6 +65,10 @@ libraries. If not found, it may fall back on using a bundled copy (in ...@@ -65,6 +65,10 @@ libraries. If not found, it may fall back on using a bundled copy (in
provided for manual builds only, and not used as a fallback in case system provided for manual builds only, and not used as a fallback in case system
libraries are unavailable. libraries are unavailable.
\note For security reasons, the Direct Draw Surface (DDS) handler is not built
by default since Qt 5.8. Users who still want this handler can build it from the
source project.
\section2 Deployment \section2 Deployment
When built, the Qt Image Formats plugins are located as dynamic When built, the Qt Image Formats plugins are located as dynamic
......
...@@ -74,6 +74,10 @@ bool QWebpHandler::canRead() const ...@@ -74,6 +74,10 @@ bool QWebpHandler::canRead() const
if (m_scanState != ScanError) { if (m_scanState != ScanError) {
setFormat(QByteArrayLiteral("webp")); setFormat(QByteArrayLiteral("webp"));
if (m_features.has_animation && m_iter.frame_num >= m_frameCount)
return false;
return true; return true;
} }
return false; return false;
...@@ -118,6 +122,8 @@ bool QWebpHandler::ensureScanned() const ...@@ -118,6 +122,8 @@ bool QWebpHandler::ensureScanned() const
that->m_bgColor = QColor::fromRgba(QRgb(WebPDemuxGetI(m_demuxer, WEBP_FF_BACKGROUND_COLOR))); that->m_bgColor = QColor::fromRgba(QRgb(WebPDemuxGetI(m_demuxer, WEBP_FF_BACKGROUND_COLOR)));
that->m_composited = new QImage(that->m_features.width, that->m_features.height, QImage::Format_ARGB32); that->m_composited = new QImage(that->m_features.width, that->m_features.height, QImage::Format_ARGB32);
if (that->m_features.has_alpha)
that->m_composited->fill(Qt::transparent);
// We do not reset device position since we have read in all data // We do not reset device position since we have read in all data
m_scanState = ScanSuccess; m_scanState = ScanSuccess;
...@@ -189,6 +195,8 @@ bool QWebpHandler::read(QImage *image) ...@@ -189,6 +195,8 @@ bool QWebpHandler::read(QImage *image)
} else { } else {
// Animation // Animation
QPainter painter(m_composited); QPainter painter(m_composited);
if (m_features.has_alpha && m_iter.dispose_method == WEBP_MUX_DISPOSE_BACKGROUND)
m_composited->fill(Qt::transparent);
painter.drawImage(currentImageRect(), frame); painter.drawImage(currentImageRect(), frame);
*image = *m_composited; *image = *m_composited;
......
...@@ -127,6 +127,7 @@ void tst_qwebp::readAnimation() ...@@ -127,6 +127,7 @@ void tst_qwebp::readAnimation()
} }
QVERIFY(reader.read().isNull()); QVERIFY(reader.read().isNull());
QCOMPARE(reader.canRead(), !reader.supportsAnimation());
} }
void tst_qwebp::writeImage_data() void tst_qwebp::writeImage_data()
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment