diff options
author | Lars Knoll <lars.knoll@qt.io> | 2021-02-07 16:00:13 +0100 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2021-02-09 19:04:36 +0000 |
commit | c9207426ec8f44bf766180631890a5ba6f4925d6 (patch) | |
tree | 4b5540b577943642e85ebc924df68c12f67f5a30 /src/imports | |
parent | ff25f700c87a308702f4dfdd8b2ab145a75ef5e4 (diff) |
Clean up zooming API
There is very little point these days in having properties
for both optical and digital zoom. Most mobile cameras don't
have a real optical zoom, but instead combine different cameras
with different focal lengths.
Change-Id: Icac48d949e767d7f3105c4d330e15273fe715fbe
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Doris Verria <doris.verria@qt.io>
Diffstat (limited to 'src/imports')
-rw-r--r-- | src/imports/multimedia/qdeclarativecamera.cpp | 71 | ||||
-rw-r--r-- | src/imports/multimedia/qdeclarativecamera_p.h | 22 |
2 files changed, 24 insertions, 69 deletions
diff --git a/src/imports/multimedia/qdeclarativecamera.cpp b/src/imports/multimedia/qdeclarativecamera.cpp index 8b90d99c6..d2af7ab7d 100644 --- a/src/imports/multimedia/qdeclarativecamera.cpp +++ b/src/imports/multimedia/qdeclarativecamera.cpp @@ -192,14 +192,8 @@ QDeclarativeCamera::QDeclarativeCamera(QObject *parent) : connect(m_camera, SIGNAL(statusChanged(QCamera::Status)), this, SIGNAL(cameraStatusChanged())); connect(m_camera, SIGNAL(errorOccurred(QCamera::Error)), this, SLOT(_q_errorOccurred(QCamera::Error))); - connect(m_camera->focus(), &QCameraFocus::opticalZoomChanged, - this, &QDeclarativeCamera::opticalZoomChanged); - connect(m_camera->focus(), &QCameraFocus::digitalZoomChanged, - this, &QDeclarativeCamera::digitalZoomChanged); - connect(m_camera->focus(), &QCameraFocus::maximumOpticalZoomChanged, - this, &QDeclarativeCamera::maximumOpticalZoomChanged); - connect(m_camera->focus(), &QCameraFocus::maximumDigitalZoomChanged, - this, &QDeclarativeCamera::maximumDigitalZoomChanged); + connect(m_camera->focus(), &QCameraFocus::zoomFactorChanged, + this, &QDeclarativeCamera::zoomFactorChanged); } /*! Destructor, clean up memory */ @@ -626,72 +620,39 @@ void QDeclarativeCamera::unlock() { m_camera->unlock(); } -/*! - \property QDeclarativeCamera::maximumOpticalZoom - This property holds the maximum optical zoom factor supported, or 1.0 if optical zoom is not supported. -*/ /*! - \qmlproperty real QtMultimedia::Camera::maximumOpticalZoom + \qmlproperty real QtMultimedia::Camera::minimumZoomFactor - This property holds the maximum optical zoom factor supported, or 1.0 if optical zoom is not supported. + This property holds the minimum zoom factor supported. */ -qreal QDeclarativeCamera::maximumOpticalZoom() const +qreal QDeclarativeCamera::minimumZoomFactor() const { - return m_camera->focus()->maximumOpticalZoom(); + return m_camera->focus()->minimumZoomFactor(); } -/*! - \property QDeclarativeCamera::maximumDigitalZoom - This property holds the maximum digital zoom factor supported, or 1.0 if digital zoom is not supported. -*/ /*! - \qmlproperty real QtMultimedia::Camera::maximumDigitalZoom + \qmlproperty real QtMultimedia::Camera::maximumZoomFactor - This property holds the maximum digital zoom factor supported, or 1.0 if digital zoom is not supported. + This property holds the maximum zoom factor supported, or 1.0 if zooming is not supported. */ -qreal QDeclarativeCamera::maximumDigitalZoom() const +qreal QDeclarativeCamera::maximumZoomFactor() const { - return m_camera->focus()->maximumDigitalZoom(); + return m_camera->focus()->maximumZoomFactor(); } /*! - \property QDeclarativeCamera::opticalZoom - - This property holds the current optical zoom factor. -*/ - -/*! - \qmlproperty real QtMultimedia::Camera::opticalZoom - - This property holds the current optical zoom factor. -*/ -qreal QDeclarativeCamera::opticalZoom() const -{ - return m_camera->focus()->opticalZoom(); -} - -void QDeclarativeCamera::setOpticalZoom(qreal value) -{ - m_camera->focus()->zoomTo(value, digitalZoom()); -} -/*! - \property QDeclarativeCamera::digitalZoom - - This property holds the current digital zoom factor. -*/ -/*! - \qmlproperty real QtMultimedia::Camera::digitalZoom + \property QDeclarativeCamera::zoomFactor - This property holds the current digital zoom factor. + This property holds the current zoom factor. */ -qreal QDeclarativeCamera::digitalZoom() const +qreal QDeclarativeCamera::zoomFactor() const { - return m_camera->focus()->digitalZoom(); + return m_camera->focus()->zoomFactor(); } -void QDeclarativeCamera::setDigitalZoom(qreal value) +void QDeclarativeCamera::setZoomFactor(qreal value) { - m_camera->focus()->zoomTo(opticalZoom(), value); + m_camera->focus()->setZoomFactor(value); } /*! diff --git a/src/imports/multimedia/qdeclarativecamera_p.h b/src/imports/multimedia/qdeclarativecamera_p.h index 20a7ce2e0..0c60d9319 100644 --- a/src/imports/multimedia/qdeclarativecamera_p.h +++ b/src/imports/multimedia/qdeclarativecamera_p.h @@ -88,10 +88,9 @@ class QDeclarativeCamera : public QObject, public QQmlParserStatus Q_PROPERTY(Error errorCode READ errorCode NOTIFY errorChanged) Q_PROPERTY(QString errorString READ errorString NOTIFY errorChanged) - Q_PROPERTY(qreal opticalZoom READ opticalZoom WRITE setOpticalZoom NOTIFY opticalZoomChanged) - Q_PROPERTY(qreal maximumOpticalZoom READ maximumOpticalZoom NOTIFY maximumOpticalZoomChanged) - Q_PROPERTY(qreal digitalZoom READ digitalZoom WRITE setDigitalZoom NOTIFY digitalZoomChanged) - Q_PROPERTY(qreal maximumDigitalZoom READ maximumDigitalZoom NOTIFY maximumDigitalZoomChanged) + Q_PROPERTY(qreal minimumZoomFactor READ minimumZoomFactor) + Q_PROPERTY(qreal maximumZoomFactor READ maximumZoomFactor) + Q_PROPERTY(qreal zoomFactor READ zoomFactor WRITE setZoomFactor NOTIFY zoomFactorChanged) Q_PROPERTY(QObject *mediaSource READ mediaSource NOTIFY mediaSourceChanged SCRIPTABLE false DESIGNABLE false) Q_PROPERTY(QDeclarativeCameraCapture* imageCapture READ imageCapture CONSTANT) @@ -260,11 +259,10 @@ public: LockStatus lockStatus() const; - qreal maximumOpticalZoom() const; - qreal maximumDigitalZoom() const; + qreal minimumZoomFactor() const; + qreal maximumZoomFactor() const; - qreal opticalZoom() const; - qreal digitalZoom() const; + qreal zoomFactor() const; Availability availability() const; @@ -279,8 +277,7 @@ public Q_SLOTS: void searchAndLock(); void unlock(); - void setOpticalZoom(qreal); - void setDigitalZoom(qreal); + void setZoomFactor(qreal); Q_REVISION(2) QJSValue supportedResolutions(qreal minimumFrameRate = 0.0, qreal maximumFrameRate = 0.0); @@ -301,10 +298,7 @@ Q_SIGNALS: void lockStatusChanged(); - void opticalZoomChanged(qreal); - void digitalZoomChanged(qreal); - void maximumOpticalZoomChanged(qreal); - void maximumDigitalZoomChanged(qreal); + void zoomFactorChanged(qreal); void mediaSourceChanged(); |