Set the metadata to the images and videos.
authorMohammed Sameer <msameer@foolab.org>
Sun, 16 Sep 2012 19:46:14 +0000 (22:46 +0300)
committerMohammed Sameer <msameer@foolab.org>
Sun, 16 Sep 2012 19:50:47 +0000 (22:50 +0300)
qml/ImagePage.qml
qml/VideoPage.qml
qml/main.qml

index 03f46a0..55a4dc0 100644 (file)
@@ -22,8 +22,12 @@ CameraPage {
                 onClicked: {
                         if (!fileSystem.available) {
                                 showError(qsTr("Camera cannot capture images in mass storage mode."));
+                                return;
                         }
-                        else if (!imageMode.capture(fileNaming.imageFileName())) {
+
+                        metaData.setMetaData();
+
+                        if (!imageMode.capture(fileNaming.imageFileName())) {
                                 showError(qsTr("Failed to capture image. Please restart the camera."));
                         }
                 }
index 29db16d..39adf2e 100644 (file)
@@ -58,6 +58,7 @@ CameraPage {
                         target: resourcePolicy
                         onAcquiredChanged: {
                                 if (resourcePolicy.acquired && policyMode == CameraResources.Recording) {
+                                        metaData.setMetaData();
                                         if (!videoMode.startRecording(fileNaming.videoFileName())) {
                                                 showError(qsTr("Failed to record video. Please restart the camera."));
                                                 policyMode = CameraResources.Video
index 7258d1b..0d35e6c 100644 (file)
@@ -5,8 +5,8 @@ import com.nokia.extras 1.1
 import QtCamera 1.0
 import CameraPlus 1.0
 import QtMobility.systeminfo 1.2
+import QtMobility.location 1.2
 
-// TODO: metadata creator name, gps, geotags
 // TODO: resolutions and aspect ratios
 // TODO: postcapture
 // TODO: battery low state
@@ -49,6 +49,50 @@ PageStackWindow {
                 error.show();
         }
 
+        PositionSource {
+                id: positionSource
+                active: cam.running && settings.useGps
+                onPositionChanged: geocode.search(position.coordinate.longitude, position.coordinate.latitude);
+        }
+
+        MetaData {
+                id: metaData
+                camera: cam
+                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: cam.running
+        }
+
+        Compass {
+                id: compass
+                active: cam.running
+        }
+
+        ReverseGeocode {
+                id: geocode
+                active: cam.running && settings.useGps && settings.useGeotags
+        }
+
         CameraResources {
                 id: resourcePolicy
                 onAcquiredChanged: {