diff options
| author | Eirik Aavitsland <eirik.aavitsland@qt.io> | 2022-10-25 16:14:07 +0200 |
|---|---|---|
| committer | Eirik Aavitsland <eirik.aavitsland@qt.io> | 2024-04-17 12:27:36 +0200 |
| commit | 967997d93390cbfb0365209e79fc97ee2afbb8c5 (patch) | |
| tree | 6273ee0007a0c559d7cc3dd27b854cd0dc82f0ec /src/quick | |
| parent | 5d6efb8981282c43441a01c30a092836eef145cb (diff) | |
Pass the sourceClipRect setting in the QQuickImageProvider options
This provides access to that property to image providers that
implement the QQuickImageProviderWithOptions API.
Fixes: QTBUG-98958
Task-number: QTBUG-86316
Change-Id: I0356e6205ab699e01a7c634ddf4d964e0c0228aa
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Diffstat (limited to 'src/quick')
| -rw-r--r-- | src/quick/items/qquickimagebase.cpp | 1 | ||||
| -rw-r--r-- | src/quick/util/qquickimageprovider.cpp | 14 | ||||
| -rw-r--r-- | src/quick/util/qquickpixmap_p.h | 3 |
3 files changed, 18 insertions, 0 deletions
diff --git a/src/quick/items/qquickimagebase.cpp b/src/quick/items/qquickimagebase.cpp index 26d53f6f0d..ab827379fb 100644 --- a/src/quick/items/qquickimagebase.cpp +++ b/src/quick/items/qquickimagebase.cpp @@ -165,6 +165,7 @@ void QQuickImageBase::setSourceClipRect(const QRectF &r) return; d->sourceClipRect = r; + d->providerOptions.setSourceClipRect(r); emit sourceClipRectChanged(); if (isComponentComplete()) load(); diff --git a/src/quick/util/qquickimageprovider.cpp b/src/quick/util/qquickimageprovider.cpp index 38f6a4bc27..27134c9deb 100644 --- a/src/quick/util/qquickimageprovider.cpp +++ b/src/quick/util/qquickimageprovider.cpp @@ -476,6 +476,7 @@ public: } QColorSpace targetColorSpace; + QRectF sourceClipRect; QQuickImageProviderOptions::AutoTransform autoTransform = QQuickImageProviderOptions::UsePluginDefaultTransform; bool preserveAspectRatioCrop = false; bool preserveAspectRatioFit = false; @@ -582,6 +583,19 @@ void QQuickImageProviderOptions::setTargetColorSpace(const QColorSpace &colorSpa d->targetColorSpace = colorSpace; } +/*! + Returns the requested source clip rect. +*/ +QRectF QQuickImageProviderOptions::sourceClipRect() const +{ + return d->sourceClipRect; +} + +void QQuickImageProviderOptions::setSourceClipRect(const QRectF &rect) +{ + d->sourceClipRect = rect; +} + QQuickImageProviderWithOptions::QQuickImageProviderWithOptions(ImageType type, Flags flags) : QQuickAsyncImageProvider() { diff --git a/src/quick/util/qquickpixmap_p.h b/src/quick/util/qquickpixmap_p.h index 35ac7eda39..ad4fdb9111 100644 --- a/src/quick/util/qquickpixmap_p.h +++ b/src/quick/util/qquickpixmap_p.h @@ -83,6 +83,9 @@ public: QColorSpace targetColorSpace() const; void setTargetColorSpace(const QColorSpace &colorSpace); + QRectF sourceClipRect() const; + void setSourceClipRect(const QRectF &rect); + private: QSharedDataPointer<QQuickImageProviderOptionsPrivate> d; }; |
