aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmldesigner/components/assetslibrary/assetslibraryiconprovider.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/qmldesigner/components/assetslibrary/assetslibraryiconprovider.cpp')
-rw-r--r--src/plugins/qmldesigner/components/assetslibrary/assetslibraryiconprovider.cpp11
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};
}