From 3c83b3c010fe5f9f38f21f49c36a5ae4d0b3ede4 Mon Sep 17 00:00:00 2001 From: Volker Hilsheimer Date: Fri, 7 Apr 2023 00:43:34 +0200 Subject: [PATCH] QImage: when saving fails, print the writer's error string In debug builds, don't fail silently in QImage::save, but emit the error string of the QImageWriter to the warning stream so that developers have a chance to know what's going on. Task-number: QTBUG-103257 Task-number: QTBUG-41043 Pick-to: 6.5 Change-Id: I29718b1445d0c99a3b35d57b58ec915a503cd5f0 Reviewed-by: Eirik Aavitsland --- src/gui/image/qimage.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/gui/image/qimage.cpp b/src/gui/image/qimage.cpp index dc2d936fdae..4aff92ac80d 100644 --- a/src/gui/image/qimage.cpp +++ b/src/gui/image/qimage.cpp @@ -3900,10 +3900,15 @@ bool QImage::save(QIODevice* device, const char* format, int quality) const bool QImageData::doImageIO(const QImage *image, QImageWriter *writer, int quality) const { if (quality > 100 || quality < -1) - qWarning("QPixmap::save: Quality out of range [-1, 100]"); + qWarning("QImage::save: Quality out of range [-1, 100]"); if (quality >= 0) writer->setQuality(qMin(quality,100)); - return writer->write(*image); + const bool result = writer->write(*image); +#ifdef QT_DEBUG + if (!result) + qWarning("QImage::save: failed to write image - %s", qPrintable(writer->errorString())); +#endif + return result; } /*****************************************************************************