Added a new property (ready) to the capabilities so we can know when to set the value...
authorMohammed Sameer <msameer@foolab.org>
Thu, 6 Sep 2012 19:49:56 +0000 (22:49 +0300)
committerMohammed Sameer <msameer@foolab.org>
Thu, 6 Sep 2012 19:49:56 +0000 (22:49 +0300)
imports/capability.cpp
imports/capability.h
qml/main.qml

index 6f3e8e7..b3a35cd 100644 (file)
@@ -22,15 +22,23 @@ void Capability::setCamera(Camera *cam) {
 
   if (m_cam) {
     QObject::disconnect(m_cam, SIGNAL(deviceChanged()), this, SLOT(deviceChanged()));
+    QObject::disconnect(m_cam, SIGNAL(deviceChanged()), this, SIGNAL(isReadyChanged()));
   }
 
   m_cam = cam;
 
   if (m_cam) {
     QObject::connect(m_cam, SIGNAL(deviceChanged()), this, SLOT(deviceChanged()));
+    QObject::connect(m_cam, SIGNAL(deviceChanged()), this, SIGNAL(isReadyChanged()));
   }
 
   emit cameraChanged();
 
   deviceChanged();
+
+  emit isReadyChanged();
+}
+
+bool Capability::isReady() const {
+  return m_cam && m_cam->device();
 }
index d2d0f62..80ac38f 100644 (file)
@@ -10,6 +10,7 @@ class Camera;
 class Capability : public QObject {
   Q_OBJECT
   Q_PROPERTY(Camera* camera READ camera WRITE setCamera NOTIFY cameraChanged);
+  Q_PROPERTY(bool ready READ isReady NOTIFY isReadyChanged);
 
 public:
   Capability(QObject *parent = 0);
@@ -18,8 +19,11 @@ public:
   Camera *camera();
   void setCamera(Camera *cam);
 
+  bool isReady() const;
+
 signals:
   void cameraChanged();
+  void isReadyChanged();
 
 private slots:
   virtual void deviceChanged() = 0;
index dcf145c..228df84 100644 (file)
@@ -77,21 +77,19 @@ PageStackWindow {
         Scene {
                 id: sceneController
                 camera: cam
-                value: camera.mode == Camera.VideoMode ? settings.videoSceneMode : settings.imageSceneMode
+                value: ready ? camera.mode == Camera.VideoMode ? settings.videoSceneMode : settings.imageSceneMode : 0
         }
 
         ColorTone {
                 id: colorToneController
                 camera: cam
-                // TODO: not applied upon startup
-                value: camera.mode == Camera.VideoMode ? settings.videoColorFilter : settings.imageColorFilter
+                value: ready ? camera.mode == Camera.VideoMode ? settings.videoColorFilter : settings.imageColorFilter : 0
         }
 
         WhiteBalance {
                 id: whiteBalanceController
                 camera: cam
-                // TODO: not applied upon startup
-                value: camera.mode == Camera.VideoMode ? settings.videoWhiteBalance : settings.imageWhiteBalance
+                value: ready ? camera.mode == Camera.VideoMode ? settings.videoWhiteBalance : settings.imageWhiteBalance : 0
         }
 
         ModeController {