From b08b63f65267038911106ea7e0fba039e4e95151 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Thu, 5 Jun 2014 15:19:20 +0200 Subject: QIcon: Prefer high-quality images of Windows .ico files. Refactor the code QPixmapIconEngine::addFile() using a convenience class for reading all images. Special-case .ico-files: Read images into a list and replace by higher-quality ones. Task-number: QTBUG-39287 Change-Id: I32ab6c77a276dc5d4d9a8f7b216c81149b8772b8 Reviewed-by: aavit --- src/plugins/imageformats/ico/qicohandler.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/plugins') diff --git a/src/plugins/imageformats/ico/qicohandler.cpp b/src/plugins/imageformats/ico/qicohandler.cpp index 77bb727a51..505d6cc42b 100644 --- a/src/plugins/imageformats/ico/qicohandler.cpp +++ b/src/plugins/imageformats/ico/qicohandler.cpp @@ -517,6 +517,8 @@ void ICOReader::read16_24_32BMP(QImage & image) } } +static const char icoOrigDepthKey[] = "_q_icoOrigDepth"; + QImage ICOReader::iconAt(int index) { QImage img; @@ -535,7 +537,9 @@ QImage ICOReader::iconAt(int index) if (isPngImage) { iod->seek(iconEntry.dwImageOffset); - return QImage::fromData(iod->read(iconEntry.dwBytesInRes), "png"); + QImage image = QImage::fromData(iod->read(iconEntry.dwBytesInRes), "png"); + image.setText(QLatin1String(icoOrigDepthKey), QString::number(iconEntry.wBitCount)); + return image; } BMP_INFOHDR header; @@ -598,6 +602,7 @@ QImage ICOReader::iconAt(int index) } } } + img.setText(QLatin1String(icoOrigDepthKey), QString::number(iconEntry.wBitCount)); } } } -- cgit v1.2.3