diff options
Diffstat (limited to 'src/plugins/qmldesigner/components/assetslibrary/assetslibraryiconprovider.cpp')
-rw-r--r-- | src/plugins/qmldesigner/components/assetslibrary/assetslibraryiconprovider.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/plugins/qmldesigner/components/assetslibrary/assetslibraryiconprovider.cpp b/src/plugins/qmldesigner/components/assetslibrary/assetslibraryiconprovider.cpp index 838af4d63d..dc5a1c9741 100644 --- a/src/plugins/qmldesigner/components/assetslibrary/assetslibraryiconprovider.cpp +++ b/src/plugins/qmldesigner/components/assetslibrary/assetslibraryiconprovider.cpp @@ -56,8 +56,15 @@ Thumbnail AssetsLibraryIconProvider::createThumbnail(const QString &id, const QS originalSize = KtxImage(id).dimensions(); } - if (requestedSize.isValid()) - pixmap = pixmap.scaled(requestedSize, Qt::KeepAspectRatio); + if (requestedSize.isValid()) { + double ratio = requestedSize.width() / 48.; + if (ratio * pixmap.size().width() > requestedSize.width() + || ratio * pixmap.size().height() > requestedSize.height()) { + pixmap = pixmap.scaled(requestedSize, Qt::KeepAspectRatio); + } else if (!qFuzzyCompare(ratio, 1.)) { + pixmap = pixmap.scaled(pixmap.size() * ratio, Qt::KeepAspectRatio); + } + } return Thumbnail{pixmap, originalSize, assetType, fileSize}; } |