aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--share/qtcreator/qmldesigner/assetsLibraryQmlSources/AssetDelegate.qml2
-rw-r--r--src/plugins/qmldesigner/components/assetslibrary/assetslibraryiconprovider.cpp11
2 files changed, 10 insertions, 3 deletions
diff --git a/share/qtcreator/qmldesigner/assetsLibraryQmlSources/AssetDelegate.qml b/share/qtcreator/qmldesigner/assetsLibraryQmlSources/AssetDelegate.qml
index 6a511c7252..edaf038ac8 100644
--- a/share/qtcreator/qmldesigner/assetsLibraryQmlSources/AssetDelegate.qml
+++ b/share/qtcreator/qmldesigner/assetsLibraryQmlSources/AssetDelegate.qml
@@ -327,7 +327,7 @@ TreeViewDelegate {
sourceSize.width: 48
sourceSize.height: 48
asynchronous: true
- fillMode: Image.PreserveAspectFit
+ fillMode: Image.Pad
source: thumbnailImage.__computeSource()
function __computeSource() {
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};
}