aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@qt.io>2023-09-21 16:13:43 +0300
committerThomas Hartmann <thomas.hartmann@qt.io>2023-09-22 07:22:37 +0000
commit6386bfeeb4f1553f90743606a48e5c724f05aff5 (patch)
treead65c11ae50614a73dcd760cfaf433fe0f9317de
parentc17250881e891c91c3ca5d76c4b2f801dfc72b58 (diff)
QmlDesigner: Preserve size of small asset view images
Small images get blurry if scaled up, so just show the original image in the thumbnail if it is smaller than the thumbnail. Fixes: QDS-10671 Change-Id: I76b5b1c5b316fb66e7df71602383b894dd7bc635 Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io> (cherry picked from commit 15051d112e9b8ecbfbb9e65526a8699959d2da61) Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io> Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
-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};
}