+ }
+
+ function showError(msg) {
+ error.text = msg
+ error.show()
+ }
+
+ property alias dimmer: camDimmer
+
+ PositionSource {
+ // NOTE: The source will not reset the position when we lose the signal.
+ // This shouldn't be a big problem as we are course enough.
+ // If we ever need street level updates then this will be an issue.
+ 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
+ onPositionChanged: geocode.search(position.coordinate.longitude, position.coordinate.latitude)
+ }
+
+ MetaData {
+ id: metaData
+ camera: viewfinder.camera
+ manufacturer: deviceInfo.manufacturer
+ model: deviceInfo.model
+ country: geocode.country
+ city: geocode.city
+ suburb: geocode.suburb
+ longitude: positionSource.position.coordinate.longitude
+ longitudeValid: positionSource.position.longitudeValid && settings.useGps
+ latitude: positionSource.position.coordinate.latitude
+ latitudeValid: positionSource.position.latitudeValid && settings.useGps
+ elevation: positionSource.position.coordinate.altitude
+ elevationValid: positionSource.position.altitudeValid && settings.useGps
+ orientation: orientation.orientation
+ artist: settings.creatorName
+ captureDirection: compass.direction
+ captureDirectionValid: compass.directionValid
+ horizontalError: positionSource.position.horizontalAccuracy
+ horizontalErrorValid: positionSource.position.horizontalAccuracyValid && settings.useGps
+ dateTimeEnabled: true
+ }
+
+ Orientation {
+ id: orientation
+ active: viewfinder.camera.running || (mainView.currentIndex == 2 && Qt.application.active)
+ }