aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick
diff options
context:
space:
mode:
authorEirik Aavitsland <eirik.aavitsland@qt.io>2022-10-25 16:14:07 +0200
committerEirik Aavitsland <eirik.aavitsland@qt.io>2024-04-17 12:27:36 +0200
commit967997d93390cbfb0365209e79fc97ee2afbb8c5 (patch)
tree6273ee0007a0c559d7cc3dd27b854cd0dc82f0ec /src/quick
parent5d6efb8981282c43441a01c30a092836eef145cb (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.cpp1
-rw-r--r--src/quick/util/qquickimageprovider.cpp14
-rw-r--r--src/quick/util/qquickpixmap_p.h3
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;
};