diff options
author | Albert Astals Cid <albert.astals@canonical.com> | 2016-07-15 14:21:37 +0200 |
---|---|---|
committer | Shawn Rutledge <shawn.rutledge@qt.io> | 2016-11-11 17:20:10 +0000 |
commit | 9c50216c7bbbdb2bb51d4485286bf09e12fb5b62 (patch) | |
tree | 39b9bd552507482b87fceeaedad42e4bf12eca11 /src/quick/items/qquickimagebase.cpp | |
parent | 6cb21a9296b34d66d7b50d6b38c09294634202e0 (diff) |
Scale images correctly with sourceSize and PreserveAspectCrop/Fit
It also introduces a private QQuickImageProviderWithOptions to allow
passing options to image providers so that they can return more
fine-tuned images. This private class will disappear in Qt6 and the
functionality will be merged into QQuickImageProvider.
Change-Id: I619065d889d21d3a9e1f8e45fdb6076b9657c7ed
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Diffstat (limited to 'src/quick/items/qquickimagebase.cpp')
-rw-r--r-- | src/quick/items/qquickimagebase.cpp | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/quick/items/qquickimagebase.cpp b/src/quick/items/qquickimagebase.cpp index a2b99b6395..a6bf6b4e8a 100644 --- a/src/quick/items/qquickimagebase.cpp +++ b/src/quick/items/qquickimagebase.cpp @@ -246,7 +246,7 @@ void QQuickImageBase::load() resolve2xLocalFile(d->url, targetDevicePixelRatio, &loadUrl, &d->devicePixelRatio); } - d->pix.load(qmlEngine(this), loadUrl, d->sourcesize * d->devicePixelRatio, options, d->autoTransform); + d->pix.load(qmlEngine(this), loadUrl, d->sourcesize * d->devicePixelRatio, options, d->providerOptions); if (d->pix.isLoading()) { if (d->progress != 0.0) { @@ -381,17 +381,18 @@ void QQuickImageBase::resolve2xLocalFile(const QUrl &url, qreal targetDevicePixe bool QQuickImageBase::autoTransform() const { Q_D(const QQuickImageBase); - if (d->autoTransform == UsePluginDefault) - return d->pix.autoTransform() == ApplyTransform; - return d->autoTransform == ApplyTransform; + if (d->providerOptions.autoTransform() == QQuickImageProviderOptions::UsePluginDefaultTransform) + return d->pix.autoTransform() == QQuickImageProviderOptions::ApplyTransform; + return d->providerOptions.autoTransform() == QQuickImageProviderOptions::ApplyTransform; } void QQuickImageBase::setAutoTransform(bool transform) { Q_D(QQuickImageBase); - if (d->autoTransform != UsePluginDefault && transform == (d->autoTransform == ApplyTransform)) + if (d->providerOptions.autoTransform() != QQuickImageProviderOptions::UsePluginDefaultTransform && + transform == (d->providerOptions.autoTransform() == QQuickImageProviderOptions::ApplyTransform)) return; - d->autoTransform = transform ? ApplyTransform : DoNotApplyTransform; + d->providerOptions.setAutoTransform(transform ? QQuickImageProviderOptions::ApplyTransform : QQuickImageProviderOptions::DoNotApplyTransform); emitAutoTransformBaseChanged(); } |