From 923c2ab674d903d5c71254bf127d2784d3cc6980 Mon Sep 17 00:00:00 2001 From: Jochen Seemann Date: Wed, 29 Nov 2017 20:55:52 +0100 Subject: add missing capability properties to CameraImageProcessing Task-number: QTBUG-45336 Change-Id: Iac47212b0a73b275795bd3051a2141f8089b7dc5 Reviewed-by: Christian Stromme --- .../qdeclarativecameraimageprocessing.cpp | 62 ++++++++++++++++++++++ 1 file changed, 62 insertions(+) (limited to 'src/imports/multimedia/qdeclarativecameraimageprocessing.cpp') diff --git a/src/imports/multimedia/qdeclarativecameraimageprocessing.cpp b/src/imports/multimedia/qdeclarativecameraimageprocessing.cpp index e8a816727..8e14a7945 100644 --- a/src/imports/multimedia/qdeclarativecameraimageprocessing.cpp +++ b/src/imports/multimedia/qdeclarativecameraimageprocessing.cpp @@ -84,6 +84,18 @@ QDeclarativeCameraImageProcessing::QDeclarativeCameraImageProcessing(QCamera *ca QObject(parent) { m_imageProcessing = camera->imageProcessing(); + + connect(camera, QOverload::of(&QCamera::availabilityChanged), + this, &QDeclarativeCameraImageProcessing::availableChanged); + connect(camera, &QCamera::statusChanged, [this](QCamera::Status status) { + if (status != QCamera::UnloadedStatus && status != QCamera::LoadedStatus + && status != QCamera::ActiveStatus) { + return; + } + + emit supportedColorFiltersChanged(); + emit supportedWhiteBalanceModesChanged(); + }); } QDeclarativeCameraImageProcessing::~QDeclarativeCameraImageProcessing() @@ -272,6 +284,56 @@ QDeclarativeCameraImageProcessing::ColorFilter QDeclarativeCameraImageProcessing return ColorFilter(m_imageProcessing->colorFilter()); } +/*! + \qmlproperty bool QtMultimedia::CameraImageProcessing::isAvailable + + This property holds if image processing related settings are supported by this camera. + + \since 5.11 +*/ +bool QDeclarativeCameraImageProcessing::isAvailable() const +{ + return m_imageProcessing->isAvailable(); +} + +/*! + \qmlproperty list QtMultimedia::CameraImageProcessing::supportedColorFilters + + This property holds the supported color filters by this camera. + + \since 5.11 +*/ +QVariantList QDeclarativeCameraImageProcessing::supportedColorFilters() const +{ + QVariantList supportedFilters; + + for (int i = int(ColorFilterNone); i <= int(ColorFilterVendor); ++i) { + if (m_imageProcessing->isColorFilterSupported((QCameraImageProcessing::ColorFilter) i)) + supportedFilters.append(i); + } + + return supportedFilters; +} + +/*! + \qmlproperty list QtMultimedia::CameraImageProcessing::supportedWhiteBalanceModes + + This property holds the supported white balance modes by this camera. + + \since 5.11 +*/ +QVariantList QDeclarativeCameraImageProcessing::supportedWhiteBalanceModes() const +{ + QVariantList supportedModes; + + for (int i = int(WhiteBalanceAuto); i <= int(WhiteBalanceVendor); i++) { + if (m_imageProcessing->isWhiteBalanceModeSupported(QCameraImageProcessing::WhiteBalanceMode(i))) + supportedModes.append(i); + } + + return supportedModes; +} + void QDeclarativeCameraImageProcessing::setColorFilter(ColorFilter filter) { if (this->colorFilter() != filter) { -- cgit v1.2.3