diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2015-09-29 20:10:29 -0400 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2015-09-29 20:10:29 -0400 |
commit | 1b8ac21f6be42d777f38d1cf921bcadcb11f82f8 (patch) | |
tree | c6a50778e5f3d311b187eab269f3899fa7e068b3 | |
parent | b1a929260f091a0a94c6aa46d12f7324c5920331 (diff) | |
download | subsurface-1b8ac21f6be42d777f38d1cf921bcadcb11f82f8.tar.gz |
Correctly handle updating the name of dive sites from GPS
If the user downloaded the GPS data from the Subsurface webservice before
naming a dive site, we run into a special case where entering a new name
for a dive location should just update the name of the automatically named
site which already has the correct GPS information.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r-- | qt-ui/locationinformation.cpp | 4 | ||||
-rw-r--r-- | qt-ui/maintab.cpp | 8 |
2 files changed, 10 insertions, 2 deletions
diff --git a/qt-ui/locationinformation.cpp b/qt-ui/locationinformation.cpp index 623a463c5..ea735752a 100644 --- a/qt-ui/locationinformation.cpp +++ b/qt-ui/locationinformation.cpp @@ -310,6 +310,10 @@ QVariant DiveLocationModel::data(const QModelIndex &index, int role) const case Qt::DisplayRole: return new_ds_value[index.row()]; case Qt::ToolTipRole: + if (same_string(displayed_dive_site.notes,"SubsurfaceWebservice")) + return "Update dive site name"; + else + return "Create a new dive site"; return "Create a new dive site"; case Qt::DecorationRole: return plusIcon; diff --git a/qt-ui/maintab.cpp b/qt-ui/maintab.cpp index d52966924..ffa5d82d6 100644 --- a/qt-ui/maintab.cpp +++ b/qt-ui/maintab.cpp @@ -892,9 +892,13 @@ void MainTab::updateDiveSite(int divenr) copy_dive_site(newDs, &displayed_dive_site); if (origDs && pickedUuid != origDs->uuid && same_string(origDs->notes, "SubsurfaceWebservice")) { - // this is a special case - let's remove the original dive site if this was the only user + // this is a special case - let's keep the GPS data and + // remove the original dive site if this was the only user + newDs->latitude.udeg = origDs->latitude.udeg; + newDs->longitude.udeg = origDs->longitude.udeg; if (!is_dive_site_used(origDs->uuid, false)) { - qDebug() << "delete the autogenerated dive site" << origDs->name; + if (verbose) + qDebug() << "delete the autogenerated dive site" << origDs->name; delete_dive_site(origDs->uuid); } } |