From fccdfbfdede808fac8844fae7f037068cb9f05da Mon Sep 17 00:00:00 2001 From: Mohammed Sameer Date: Sun, 16 Sep 2012 22:46:14 +0300 Subject: [PATCH] Set the metadata to the images and videos. --- qml/ImagePage.qml | 6 +++++- qml/VideoPage.qml | 1 + qml/main.qml | 46 +++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 51 insertions(+), 2 deletions(-) diff --git a/qml/ImagePage.qml b/qml/ImagePage.qml index 03f46a0..55a4dc0 100644 --- a/qml/ImagePage.qml +++ b/qml/ImagePage.qml @@ -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.")); } } diff --git a/qml/VideoPage.qml b/qml/VideoPage.qml index 29db16d..39adf2e 100644 --- a/qml/VideoPage.qml +++ b/qml/VideoPage.qml @@ -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 diff --git a/qml/main.qml b/qml/main.qml index 7258d1b..0d35e6c 100644 --- a/qml/main.qml +++ b/qml/main.qml @@ -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: { -- 2.25.1