Android: correctly update camera focus zones.

When setting a null custom focus point, we were correctly resetting
the focus zones but we were not emitting the focusZonesChanged signal,
causing the QML Camera to not update its focus zones.

Change-Id: I59940c4cd2979fa08dc26566dc0f6d19e503f64f
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
This commit is contained in:
Yoann Lopes
2014-06-20 10:56:59 +02:00
parent c46aa62c65
commit 99ce312731

View File

@@ -234,25 +234,24 @@ void QAndroidCameraFocusControl::updateFocusZones(QCameraFocusZone::FocusZoneSta
// create a focus zone (50x50 pixel) around the focus point
m_focusZones.clear();
if (m_actualFocusPoint.isNull())
return;
if (!m_actualFocusPoint.isNull()) {
QSize viewportSize = m_session->camera()->previewSize();
QSize viewportSize = m_session->camera()->previewSize();
if (!viewportSize.isValid())
return;
if (!viewportSize.isValid())
return;
QSizeF focusSize(50.f / viewportSize.width(), 50.f / viewportSize.height());
float x = qBound(qreal(0),
m_actualFocusPoint.x() - (focusSize.width() / 2),
1.f - focusSize.width());
float y = qBound(qreal(0),
m_actualFocusPoint.y() - (focusSize.height() / 2),
1.f - focusSize.height());
QSizeF focusSize(50.f / viewportSize.width(), 50.f / viewportSize.height());
float x = qBound(qreal(0),
m_actualFocusPoint.x() - (focusSize.width() / 2),
1.f - focusSize.width());
float y = qBound(qreal(0),
m_actualFocusPoint.y() - (focusSize.height() / 2),
1.f - focusSize.height());
QRectF area(QPointF(x, y), focusSize);
QRectF area(QPointF(x, y), focusSize);
m_focusZones.append(QCameraFocusZone(area, status));
m_focusZones.append(QCameraFocusZone(area, status));
}
emit focusZonesChanged();
}