diff options
author | Friedemann Kleint <Friedemann.Kleint@digia.com> | 2014-06-05 15:19:20 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@digia.com> | 2014-06-22 09:42:12 +0200 |
commit | b08b63f65267038911106ea7e0fba039e4e95151 (patch) | |
tree | bac9c01417ca0e64fb342b3f671ba6a2307ab9f8 /src/plugins/imageformats/ico | |
parent | 37312d2950605c7044263dfc582f99679d9cfc39 (diff) |
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 <eirik.aavitsland@digia.com>
Diffstat (limited to 'src/plugins/imageformats/ico')
-rw-r--r-- | src/plugins/imageformats/ico/qicohandler.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
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)); } } } |