import QtMobility.location 1.2
// TODO: postcapture
-// TODO: flash not ready
-// TODO: focus, caf, ...
+// TODO: flash not ready (battery low or flash not ready message)
// TODO: portrait/landscape
// TODO: stop viewfinder in settings pages ?
// TODO: grid lines, face tracking, ambr
-// TODO: complete settings pages
// TODO: select primary/secondary camera.
// TODO: disable debug builds.
// TODO: a way to get buffers to the application
// TODO: fcam like functionality (precise control over capture parameters).
-// TODO: changing scene mode doesn't affect the existing properties ?
-// TODO: upon startup all properties don't load correct values.
+// TODO: mute video sound
PageStackWindow {
id: root
active: cam.running && settings.useGps && settings.useGeotags
}
- CameraResources {
- id: resourcePolicy
+ PipelineManager {
+ id: pipelineManager
+ camera: cam
}
DeviceInfo {
pageStack.push(Qt.resolvedUrl(file), {cam: cam});
}
+ function openFileNow(file) {
+ pageStack.push(Qt.resolvedUrl(file), {cam: cam}, true);
+ }
+
platformStyle: PageStackWindowStyle {
+ cornersVisible: false
// TODO: Hack
background: " "
}
}
Camera {
+ id: cam
+ anchors.fill: parent
+
+ FocusReticle {
+ id: focusReticle
+ cam: cam
+ visible: pageStack.currentPage && pageStack.currentPage.controlsVisible && pageStack.currentPage.focusReticleVisible && cam && cam.autoFocus.canFocus(cam.scene.value);
+ cafStatus: cam ? cam.autoFocus.cafStatus : -1
+ status: cam ? cam.autoFocus.status : -1
+ }
+
/*
onDeviceIdChanged: {
// TODO: is this needed ?
}
}
*/
- id: cam
- anchors.fill: parent
-
onError: {
console.log("Camera error (" + code + "): " + message + " " + debug);
showError(qsTr("Camera error. Please restart the application."));
cam.stop();
- resourcePolicy.acquire(CameraResources.None);
mountProtector.unlock();
}
id: sounds
mute: !settings.soundEnabled
}
+
}
- Scene {
- id: sceneController
- camera: cam
- value: ready ? camera.mode == Camera.VideoMode ? settings.videoSceneMode : settings.imageSceneMode : 0
- onValueChanged: console.log("New scene value " + value);
+ Binding {
+ target: cam.flash
+ property: "value"
+ when: cam.mode == Camera.ImageMode
+ value: settings.imageFlashMode
}
- ColorTone {
- id: colorToneController
- camera: cam
- value: ready ? camera.mode == Camera.VideoMode ? settings.videoColorFilter : settings.imageColorFilter : 0
+ Binding {
+ target: settings
+ property: "imageFlashMode"
+ when: cam.mode == Camera.ImageMode
+ value: cam.flash.value
}
- WhiteBalance {
- id: whiteBalanceController
- camera: cam
- value: ready ? camera.mode == Camera.VideoMode ? settings.videoWhiteBalance : settings.imageWhiteBalance : 0
+ Binding {
+ target: cam.scene
+ property: "value"
+ when: cam.mode == Camera.VideoMode
+ value: settings.videoSceneMode
+ }
+
+ Binding {
+ target: cam.scene
+ property: "value"
+ when: cam.mode == Camera.ImageMode
+ value: settings.imageSceneMode
+ }
+
+ Binding {
+ target: cam.evComp
+ property: "value"
+ when: cam.mode == Camera.ImageMode
+ value: settings.imageEvComp
+ }
+
+ Binding {
+ target: cam.evComp
+ property: "value"
+ when: cam.mode == Camera.VideoMode
+ value: settings.videoEvComp
+ }
+
+ Binding {
+ target: settings
+ property: "imageEvComp"
+ when: cam.mode == Camera.ImageMode
+ value: cam.evComp.value
+ }
+
+ Binding {
+ target: settings
+ property: "videoEvComp"
+ when: cam.mode == Camera.VideoMode
+ value: cam.evComp.value
+ }
+
+ Binding {
+ target: cam.whiteBalance
+ property: "value"
+ when: cam.mode == Camera.ImageMode
+ value: settings.imageWhiteBalance
+ }
+
+ Binding {
+ target: cam.whiteBalance
+ property: "value"
+ when: cam.mode == Camera.VideoMode
+ value: settings.videoWhiteBalance
+ }
+
+ Binding {
+ target: cam.colorTone
+ property: "value"
+ when: cam.mode == Camera.ImageMode
+ value: settings.imageColorFilter
+ }
+
+ Binding {
+ target: cam.colorTone
+ property: "value"
+ when: cam.mode == Camera.VideoMode
+ value: settings.videoColorFilter
+ }
+
+ Binding {
+ target: cam.iso
+ property: "value"
+ when: cam.mode == Camera.ImageMode
+ value: settings.imageIso
+ }
+
+ Binding {
+ target: settings
+ property: "imageIso"
+ when: cam.mode == Camera.ImageMode
+ value: cam.iso.value
+ }
+
+ TrackerStore {
+ id: trackerStore
+ active: cam.running
+ manufacturer: deviceInfo.manufacturer
+ model: deviceInfo.model
}
ModeController {
dimmer: root.dimmer
}
- Iso {
- id: iso
- camera: cam
- value: ready ? settings.imageIso : 0
- }
-
Connections {
target: cam
onModeChanged: {