Hide focus reticle if we cannot focus while a particular scene mode is active
authorMohammed Sameer <msameer@foolab.org>
Fri, 14 Dec 2012 21:57:06 +0000 (23:57 +0200)
committerMohammed Sameer <msameer@foolab.org>
Fri, 14 Dec 2012 21:57:06 +0000 (23:57 +0200)
imports/autofocus.cpp
imports/autofocus.h
lib/qtcamautofocus.cpp
lib/qtcamautofocus.h
qml/CameraPage.qml

index e27b89c..ed08771 100644 (file)
@@ -19,6 +19,7 @@
  */
 
 #include "autofocus.h"
+#include "qtcamscene.h"
 
 AutoFocus::AutoFocus(QtCamDevice *dev, QObject *parent) :
   QObject(parent),
@@ -47,3 +48,7 @@ bool AutoFocus::startAutoFocus() {
 bool AutoFocus::stopAutoFocus() {
   return m_af->stopAutoFocus();
 }
+
+bool AutoFocus::canFocus(int sceneMode) {
+  return m_af->canFocus((QtCamScene::SceneMode)sceneMode);
+}
index 680e21c..14b20f7 100644 (file)
@@ -47,6 +47,7 @@ public:
 
   Q_INVOKABLE bool startAutoFocus();
   Q_INVOKABLE bool stopAutoFocus();
+  Q_INVOKABLE bool canFocus(int sceneMode);
 
   Status status();
   Status cafStatus();
index c91c1fc..5dd6354 100644 (file)
@@ -46,3 +46,11 @@ bool QtCamAutoFocus::startAutoFocus() {
 bool QtCamAutoFocus::stopAutoFocus() {
   return d_ptr->setEnabled(false);
 }
+
+bool QtCamAutoFocus::canFocus(const QtCamScene::SceneMode& mode) {
+  if (mode == QtCamScene::Landscape || mode == QtCamScene::Sport) {
+    return false;
+  }
+
+  return true;
+}
index 9255a2b..11c5759 100644 (file)
@@ -24,6 +24,7 @@
 #define QT_CAM_AUTO_FOCUS_H
 
 #include <QObject>
+#include "qtcamscene.h"
 
 class QtCamDevice;
 class QtCamAutoFocusPrivate;
@@ -53,6 +54,8 @@ public:
   bool startAutoFocus();
   bool stopAutoFocus();
 
+  bool canFocus(const QtCamScene::SceneMode& mode);
+
 signals:
   void statusChanged();
   void cafStatusChanged();
index a38bbb5..b496f71 100644 (file)
@@ -54,7 +54,7 @@ Page {
         }
 
         FocusReticle {
-                visible: controlsVisible && focusReticleVisible
+                visible: controlsVisible && focusReticleVisible && cam.autoFocus.canFocus(cam.scene.value);
                 id: focusReticle
                 cafStatus: cam.autoFocus.cafStatus
                 status: cam.autoFocus.status