Changelog for 0.0.8
[harmattan/cameraplus] / declarative / mode.h
index 790be38..07ef32d 100644 (file)
@@ -3,7 +3,7 @@
 /*!
  * This file is part of CameraPlus.
  *
- * Copyright (C) 2012 Mohammed Sameer <msameer@foolab.org>
+ * Copyright (C) 2012-2013 Mohammed Sameer <msameer@foolab.org>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -24,6 +24,7 @@
 #define MODE_H
 
 #include <QObject>
+#include <QPointer>
 
 class Camera;
 class QImage;
@@ -36,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);
@@ -50,6 +52,9 @@ public:
 
   bool isReady() const;
 
+  bool isPreviewEnabled();
+  void setPreviewEnabled(bool enabled);
+
 signals:
   void cameraChanged();
   void canCaptureChanged();
@@ -57,10 +62,12 @@ 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);
   void deviceChanged();
+  void prepareForDeviceChange();
 
 protected:
   virtual void preChangeMode() = 0;
@@ -68,10 +75,13 @@ protected:
   virtual void changeMode() = 0;
 
   Camera *m_cam;
-  QtCamMode *m_mode;
+  QPointer<QtCamMode> m_mode;
 
 private:
+  void setPreviewState();
+
   unsigned long long m_seq;
+  bool m_previewEnabled;
 };
 
 #endif /* MODE_H */