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();
}
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);
Camera *camera();
void setCamera(Camera *cam);
+ bool isReady() const;
+
signals:
void cameraChanged();
+ void isReadyChanged();
private slots:
virtual void deviceChanged() = 0;
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 {