import CameraPlus 1.0
// TODO: flash not ready (battery low or flash not ready message)
+// TODO: Sounds
+// TODO: N950 conf
CameraPage {
id: root
property bool deviceChangeInProgress: false
property bool inCaptureMode: mainView.currentIndex == 1
+ property Item dimmer: camDimmer
CameraTheme {
id: cameraTheme
VisualItemModel {
id: mainModel
- SettingsView {
- camera: viewfinder.camera
+ Loader {
+ id: settingsLoader
width: mainView.width
height: mainView.height
+
+ property bool pressed: false
+ property bool inhibitDim: false
+ property int policyMode: settings.mode == Camera.VideoMode ? CameraResources.Video : CameraResources.Image
+ opacity: item ? 1.0 : 0
+
+ Behavior on opacity {
+ NumberAnimation {duration: 200}
+ }
}
CameraView {
height: mainView.height
}
- PostCaptureView {
- camera: viewfinder.camera
+ Loader {
+ id: postCaptureLoader
+ property bool pressed: item ? item.pressed : false
+ property bool inhibitDim: item ? item.inhibitDim : false
+ property int policyMode: item ? item.policyMode : settings.mode == Camera.VideoMode ? CameraResources.Video : CameraResources.Image
+
width: mainView.width
height: mainView.height
+ opacity: item ? 1.0 : 0
+
+ Behavior on opacity {
+ NumberAnimation {duration: 200}
+ }
}
}
boundsBehavior: Flickable.StopAtBounds
currentIndex: 1
interactive: !currentItem.pressed
+ onContentXChanged: {
+ if (contentX == 0) {
+ settingsLoader.source = Qt.resolvedUrl("SettingsView.qml")
+ } else if (contentX == width) {
+ settingsLoader.source = ""
+ postCaptureLoader.source = ""
+ } else if (contentX == width * 2) {
+ postCaptureLoader.source = Qt.resolvedUrl("PostCaptureView.qml")
+ }
+ }
}
Component.onCompleted: {
error.show()
}
- property alias dimmer: camDimmer
+ PlatformQuirks {
+ id: platformQuirks
+ }
+
+ DisplayState {
+ id: displayState
+ inhibitDim: mainView.currentItem != null ? mainView.currentItem.inhibitDim : false
+ }
+
CameraPositionSource {
id: positionSource
- active: settings.useGps
- // TODO: we cannot bind to cam.running because camera will stop
- // when the connection dialog pops up and we end up with an infinite loop
- // active: cam.running && settings.useGps
+ active: (viewfinder.camera.running || platformQuirks.forceOn) && settings.useGps && displayState.isOn
onPositionChanged: geocode.search(position.coordinate.longitude, position.coordinate.latitude)
}
ReverseGeocode {
id: geocode
- active: viewfinder.camera.running && settings.useGps && settings.useGeotags
+ active: (viewfinder.camera.running || platformQuirks.forceOn) && settings.useGps && settings.useGeotags && displayState.isOn
}
DeviceInfo {
repeat: !settings.zoomAsShutter
}
+ Timer {
+ id: proximityTimer
+ running: proximitySensor.close
+ repeat: false
+ interval: 500
+ onTriggered: {
+ if (proximitySensor.close) {
+ proximitySensor.sensorClosed = true
+ }
+ }
+ }
+
CameraProximitySensor {
id: proximitySensor
+ property bool sensorClosed: false
+
active: Qt.application.active && viewfinder.camera.running && settings.proximityAsShutter && root.inCaptureMode && !mainView.moving
+ onCloseChanged: {
+ if (!close) {
+ sensorClosed = false
+ }
+ }
}
Standby {