Android: correctly update camera focus zones.
authorYoann Lopes <yoann.lopes@digia.com>
Fri, 20 Jun 2014 08:56:59 +0000 (10:56 +0200)
committerYoann Lopes <yoann.lopes@digia.com>
Mon, 30 Jun 2014 12:48:08 +0000 (14:48 +0200)
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>
src/plugins/android/src/mediacapture/qandroidcamerafocuscontrol.cpp

index 0b6ab80..c4e0ea1 100644 (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;
-
-    QSize viewportSize = m_session->camera()->previewSize();
+    if (!m_actualFocusPoint.isNull()) {
+        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();
 }