diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2019-12-09 13:44:31 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-01-31 11:04:06 +0100 |
commit | a6e661d25bf7ebeb8f4e58925aa9375f5ca10ef3 (patch) | |
tree | eff5daac853cbc4d6e75a25a71b89a19141d21e0 /src/quick/items/qquickimagebase.cpp | |
parent | 276d00cff956cb54612ec425b7c40eb50a20d78a (diff) |
Image ColorSpace bindings for Quick/QML
Adds a ColorSpace type mapped to QColorSpace, and adds a property to
Image nodes to read and change it, converting the image if necessary
on read.
Fixes: QTBUG-80616
Change-Id: Ie80c8bc045f66de01de3a5d2c4a9974f07d2871d
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
Diffstat (limited to 'src/quick/items/qquickimagebase.cpp')
-rw-r--r-- | src/quick/items/qquickimagebase.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/quick/items/qquickimagebase.cpp b/src/quick/items/qquickimagebase.cpp index 2118f67387..8849c2005c 100644 --- a/src/quick/items/qquickimagebase.cpp +++ b/src/quick/items/qquickimagebase.cpp @@ -396,6 +396,10 @@ void QQuickImageBase::requestFinished() d->frameCount = d->pix.frameCount(); emit frameCountChanged(); } + if (d->colorSpace != d->pix.colorSpace()) { + d->colorSpace = d->pix.colorSpace(); + emit colorSpaceChanged(); + } update(); } @@ -488,6 +492,22 @@ void QQuickImageBase::setAutoTransform(bool transform) emitAutoTransformBaseChanged(); } +QColorSpace QQuickImageBase::colorSpace() const +{ + Q_D(const QQuickImageBase); + return d->colorSpace; +} + +void QQuickImageBase::setColorSpace(const QColorSpace &colorSpace) +{ + Q_D(QQuickImageBase); + if (d->colorSpace == colorSpace) + return; + d->colorSpace = colorSpace; + d->providerOptions.setTargetColorSpace(colorSpace); + emit colorSpaceChanged(); +} + QT_END_NAMESPACE #include "moc_qquickimagebase_p.cpp" |