Add the spot for spot metering mode.
Not yet fully documented in QML - needs a bit of an overhaul first. Change-Id: Ic11684858fb872d0b4dcedf60b390571371db252 Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
This commit is contained in:
committed by
Qt by Nokia
parent
c97f5f8c2e
commit
6b67a11032
@@ -104,6 +104,7 @@ class QDeclarativeCamera : public QObject, public QDeclarativeParserStatus
|
||||
|
||||
Q_ENUMS(FlashMode)
|
||||
Q_ENUMS(ExposureMode)
|
||||
Q_ENUMS(MeteringMode)
|
||||
|
||||
Q_ENUMS(FocusMode)
|
||||
Q_ENUMS(FocusPointMode)
|
||||
@@ -164,6 +165,12 @@ public:
|
||||
ExposureModeVendor = QCameraExposure::ExposureModeVendor
|
||||
};
|
||||
|
||||
enum MeteringMode {
|
||||
MeteringMatrix = QCameraExposure::MeteringMatrix,
|
||||
MeteringAverage = QCameraExposure::MeteringAverage,
|
||||
MeteringSpot = QCameraExposure::MeteringSpot
|
||||
};
|
||||
|
||||
enum FocusMode {
|
||||
FocusManual = QCameraFocus::ManualFocus,
|
||||
FocusHyperfocal = QCameraFocus::HyperfocalFocus,
|
||||
|
||||
@@ -253,7 +253,41 @@ void QDeclarativeCameraExposure::setExposureMode(QDeclarativeCamera::ExposureMod
|
||||
\fn void QDeclarativeCameraExposure::exposureModeChanged(QDeclarativeCamera::ExposureMode)
|
||||
*/
|
||||
|
||||
/*!
|
||||
\qmlproperty QPointF CameraExposure::spotMeteringPoint
|
||||
\property QDeclarativeCameraExposure::spotMeteringPoint
|
||||
|
||||
The relative frame coordinates of the point to use for exposure metering (in relative
|
||||
frame coordinates). This point is only used in spot metering mode, and typically defaults
|
||||
to the center \c (0.5, 0.5).
|
||||
*/
|
||||
|
||||
QPointF QDeclarativeCameraExposure::spotMeteringPoint() const
|
||||
{
|
||||
return m_exposure->spotMeteringPoint();
|
||||
}
|
||||
|
||||
void QDeclarativeCameraExposure::setSpotMeteringPoint(const QPointF &point)
|
||||
{
|
||||
QPointF oldPoint(spotMeteringPoint());
|
||||
m_exposure->setSpotMeteringPoint(point);
|
||||
|
||||
if (oldPoint != spotMeteringPoint())
|
||||
emit spotMeteringPointChanged(spotMeteringPoint());
|
||||
}
|
||||
|
||||
QDeclarativeCamera::MeteringMode QDeclarativeCameraExposure::meteringMode() const
|
||||
{
|
||||
return QDeclarativeCamera::MeteringMode(m_exposure->meteringMode());
|
||||
}
|
||||
|
||||
void QDeclarativeCameraExposure::setMeteringMode(QDeclarativeCamera::MeteringMode mode)
|
||||
{
|
||||
QDeclarativeCamera::MeteringMode oldMode = meteringMode();
|
||||
m_exposure->setMeteringMode(QCameraExposure::MeteringMode(mode));
|
||||
if (oldMode != meteringMode())
|
||||
emit meteringModeChanged(meteringMode());
|
||||
}
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
||||
|
||||
@@ -78,6 +78,9 @@ class QDeclarativeCameraExposure : public QObject
|
||||
|
||||
Q_PROPERTY(QDeclarativeCamera::ExposureMode exposureMode READ exposureMode WRITE setExposureMode NOTIFY exposureModeChanged)
|
||||
|
||||
Q_PROPERTY(QPointF spotMeteringPoint READ spotMeteringPoint WRITE setSpotMeteringPoint NOTIFY spotMeteringPointChanged)
|
||||
Q_PROPERTY(QDeclarativeCamera::MeteringMode meteringMode READ meteringMode WRITE setMeteringMode NOTIFY meteringModeChanged)
|
||||
|
||||
public:
|
||||
~QDeclarativeCameraExposure();
|
||||
|
||||
@@ -92,6 +95,12 @@ public:
|
||||
qreal manualShutterSpeed() const;
|
||||
qreal manualAperture() const;
|
||||
|
||||
QPointF spotMeteringPoint() const;
|
||||
void setSpotMeteringPoint(const QPointF &point);
|
||||
|
||||
QDeclarativeCamera::MeteringMode meteringMode() const;
|
||||
void setMeteringMode(QDeclarativeCamera::MeteringMode mode);
|
||||
|
||||
public Q_SLOTS:
|
||||
void setExposureMode(QDeclarativeCamera::ExposureMode);
|
||||
void setExposureCompensation(qreal ev);
|
||||
@@ -116,6 +125,9 @@ Q_SIGNALS:
|
||||
void exposureCompensationChanged(qreal);
|
||||
void exposureModeChanged(QDeclarativeCamera::ExposureMode);
|
||||
|
||||
void meteringModeChanged(QDeclarativeCamera::MeteringMode);
|
||||
void spotMeteringPointChanged(QPointF);
|
||||
|
||||
private:
|
||||
friend class QDeclarativeCamera;
|
||||
QDeclarativeCameraExposure(QCamera *camera, QObject *parent = 0);
|
||||
|
||||
Reference in New Issue
Block a user