blink reticle during focusing and show colors to indicate status of focus
authorMohammed Sameer <msameer@foolab.org>
Fri, 14 Dec 2012 21:10:28 +0000 (23:10 +0200)
committerMohammed Sameer <msameer@foolab.org>
Fri, 14 Dec 2012 21:10:28 +0000 (23:10 +0200)
qml/CameraPage.qml
qml/FocusReticle.qml

index ca91e23..a38bbb5 100644 (file)
@@ -56,7 +56,8 @@ Page {
         FocusReticle {
                 visible: controlsVisible && focusReticleVisible
                 id: focusReticle
-                autoFocusStatus: cam.autoFocus.cafStatus
+                cafStatus: cam.autoFocus.cafStatus
+                status: cam.autoFocus.status
         }
 
         Rectangle {
index 19a5bdc..4a9e7ab 100644 (file)
@@ -26,22 +26,46 @@ import CameraPlus 1.0
 
 Item {
         anchors.fill: parent
-        property int autoFocusStatus: AutoFocus.None
+        property int cafStatus: AutoFocus.None
+        property int status: AutoFocus.None
 
-        function predictColor(status) {
+        onStatusChanged: {
+                if (status != AutoFocus.Running) {
+                        reticle.visible = true;
+                }
+        }
+
+        function predictColor(caf, status) {
                 if (status == AutoFocus.Success) {
                         return "steelblue";
                 }
+                else if (status == AutoFocus.Fail) {
+                        return "red";
+                }
+                else if (status == AutoFocus.Running) {
+                        return "white";
+                }
+                else if (caf == AutoFocus.Success) {
+                        return "steelblue";
+                }
                 else {
                         return "white";
                 }
         }
 
         FocusRectangle {
-                clip: true
+                id: reticle
                 width: 250
                 height: 150
                 anchors.centerIn: parent
-                color: predictColor(autoFocusStatus);
+                color: predictColor(cafStatus, status);
+        }
+
+        Timer {
+                interval: 500
+                running: status == AutoFocus.Running
+                triggeredOnStart: true
+                repeat: true
+                onTriggered: reticle.visible = !reticle.visible
         }
 }