From ec01ee3a13c720f72c89e3e62d215287f0b95c3a Mon Sep 17 00:00:00 2001 From: Mohammed Sameer Date: Fri, 14 Dec 2012 23:10:28 +0200 Subject: [PATCH] blink reticle during focusing and show colors to indicate status of focus --- qml/CameraPage.qml | 3 ++- qml/FocusReticle.qml | 32 ++++++++++++++++++++++++++++---- 2 files changed, 30 insertions(+), 5 deletions(-) diff --git a/qml/CameraPage.qml b/qml/CameraPage.qml index ca91e23..a38bbb5 100644 --- a/qml/CameraPage.qml +++ b/qml/CameraPage.qml @@ -56,7 +56,8 @@ Page { FocusReticle { visible: controlsVisible && focusReticleVisible id: focusReticle - autoFocusStatus: cam.autoFocus.cafStatus + cafStatus: cam.autoFocus.cafStatus + status: cam.autoFocus.status } Rectangle { diff --git a/qml/FocusReticle.qml b/qml/FocusReticle.qml index 19a5bdc..4a9e7ab 100644 --- a/qml/FocusReticle.qml +++ b/qml/FocusReticle.qml @@ -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 } } -- 2.25.1