diff options
author | Miikka Heikkinen <miikka.heikkinen@qt.io> | 2023-09-21 16:13:43 +0300 |
---|---|---|
committer | Thomas Hartmann <thomas.hartmann@qt.io> | 2023-09-22 07:22:37 +0000 |
commit | 6386bfeeb4f1553f90743606a48e5c724f05aff5 (patch) | |
tree | ad65c11ae50614a73dcd760cfaf433fe0f9317de | |
parent | c17250881e891c91c3ca5d76c4b2f801dfc72b58 (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.qml | 2 | ||||
-rw-r--r-- | src/plugins/qmldesigner/components/assetslibrary/assetslibraryiconprovider.cpp | 11 |
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}; } |