Added enablePreview property to declarative Mode
authorMohammed Sameer <msameer@foolab.org>
Sun, 15 Sep 2013 18:42:50 +0000 (21:42 +0300)
committerMohammed Sameer <msameer@foolab.org>
Sun, 15 Sep 2013 18:42:50 +0000 (21:42 +0300)
declarative/mode.cpp
declarative/mode.h

index 79e9109..f59ee36 100644 (file)
@@ -28,7 +28,8 @@ Mode::Mode(QObject *parent) :
   QObject(parent),
   m_cam(0),
   m_mode(0),
-  m_seq(0) {
+  m_seq(0),
+  m_previewEnabled(true) {
 
 }
 
@@ -94,6 +95,8 @@ void Mode::deviceChanged() {
     QObject::connect(m_cam->device(), SIGNAL(runningStateChanged(bool)),
                     this, SIGNAL(canCaptureChanged()));
 
+    setPreviewState();
+
     postChangeMode();
   }
 
@@ -132,3 +135,28 @@ void Mode::prepareForDeviceChange() {
     preChangeMode();
   }
 }
+
+bool Mode::isPreviewEnabled() {
+  return m_previewEnabled;
+}
+
+void Mode::setPreviewEnabled(bool enabled) {
+  if (enabled != m_previewEnabled) {
+    m_previewEnabled = enabled;
+
+    if (m_mode) {
+      setPreviewState();
+    }
+
+    emit enablePreviewChanged();
+  }
+}
+
+void Mode::setPreviewState() {
+  if (m_previewEnabled) {
+    m_mode->enablePreview();
+  }
+  else {
+    m_mode->disablePreview();
+  }
+}
index 95925d8..07ef32d 100644 (file)
@@ -37,6 +37,7 @@ class Mode : public QObject {
   Q_PROPERTY(bool canCapture READ canCapture NOTIFY canCaptureChanged);
   Q_PROPERTY(bool active READ isActive NOTIFY activeChanged);
   Q_PROPERTY(bool ready READ isReady NOTIFY isReadyChanged);
+  Q_PROPERTY(bool enablePreview READ isPreviewEnabled WRITE setPreviewEnabled NOTIFY enablePreviewChanged);
 
 public:
   Mode(QObject *parent = 0);
@@ -51,6 +52,9 @@ public:
 
   bool isReady() const;
 
+  bool isPreviewEnabled();
+  void setPreviewEnabled(bool enabled);
+
 signals:
   void cameraChanged();
   void canCaptureChanged();
@@ -58,6 +62,7 @@ signals:
   void previewAvailable(const QString& preview, const QString& fileName);
   void saved(const QString& fileName);
   void isReadyChanged();
+  void enablePreviewChanged();
 
 private slots:
   void gotPreview(const QImage& image, const QString& fileName);
@@ -73,7 +78,10 @@ protected:
   QPointer<QtCamMode> m_mode;
 
 private:
+  void setPreviewState();
+
   unsigned long long m_seq;
+  bool m_previewEnabled;
 };
 
 #endif /* MODE_H */