summaryrefslogtreecommitdiffstats
path: root/qt-mobile/qmlmanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qt-mobile/qmlmanager.cpp')
-rw-r--r--qt-mobile/qmlmanager.cpp31
1 files changed, 25 insertions, 6 deletions
diff --git a/qt-mobile/qmlmanager.cpp b/qt-mobile/qmlmanager.cpp
index 70bc5264a..f976a4bb6 100644
--- a/qt-mobile/qmlmanager.cpp
+++ b/qt-mobile/qmlmanager.cpp
@@ -328,12 +328,26 @@ void QMLManager::commitChanges(QString diveId, QString location, QString gps, QS
ds = get_dive_site_by_uuid(create_dive_site(qPrintable(location), d->when));
d->dive_site_uuid = ds->uuid;
}
- // now we need to handle the string representations of depth
- // and do something useful...
- //
- // FIXME
- //
- // TODO
+ QString gpsString = getCurrentPosition();
+ if (gpsString != QString("waiting for the next gps location")) {
+ qDebug() << "from commitChanges call to getCurrentPosition returns" << gpsString;
+ double lat, lon;
+ if (parseGpsText(qPrintable(gpsString), &lat, &lon)) {
+ struct dive_site *ds = get_dive_site_by_uuid(d->dive_site_uuid);
+ if (ds) {
+ ds->latitude.udeg = lat * 1000000;
+ ds->longitude.udeg = lon * 1000000;
+ } else {
+ degrees_t latData, lonData;
+ latData.udeg = lat;
+ lonData.udeg = lon;
+ d->dive_site_uuid = create_dive_site_with_gps("new site", latData, lonData, d->when);
+ }
+ qDebug() << "set up dive site with new GPS data";
+ }
+ } else {
+ qDebug() << "still don't have a position - will need to implement some sort of callback";
+ }
if (get_dive_duration_string(d->duration.seconds, tr("h:"), tr("min")) != duration) {
diveChanged = true;
int h = 0, m = 0, s = 0;
@@ -442,6 +456,11 @@ QString QMLManager::addDive()
return DiveListModel::instance()->startAddDive();
}
+QString QMLManager::getCurrentPosition()
+{
+ return locationProvider->currentPosition();
+}
+
void QMLManager::applyGpsData()
{
locationProvider->applyLocations();