summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2014-04-28 09:34:27 -0700
committerGravatar Dirk Hohndel <dirk@hohndel.org>2014-04-28 09:34:27 -0700
commitdad3c5d9db5c5ccecf972c405c9b53c82d5ee1a8 (patch)
tree5537a940c3e0408d188b9d9af171a8997d434360
parentde9360e2e00508000ab51daa126e6aa1149b24ad (diff)
downloadsubsurface-dad3c5d9db5c5ccecf972c405c9b53c82d5ee1a8.tar.gz
Only auto-fill coordinates for non-empty location strings
When editing the location string we try to be smart and automatically add the correct coordinates (assuming we have a location of this name already in the dive list). So if you return to the same dive spot you'll get the correct coordinates by default. But this creates bogus result if we allow an empty location to be matched, as it makes no sense to assume that all dives without a location name were at the same coordinates. Fixes #498 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r--qt-ui/maintab.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/qt-ui/maintab.cpp b/qt-ui/maintab.cpp
index ca9523767..d85d3bcdb 100644
--- a/qt-ui/maintab.cpp
+++ b/qt-ui/maintab.cpp
@@ -950,8 +950,11 @@ void MainTab::on_location_textChanged(const QString &text)
dive_trip_t *currentTrip = *MainWindow::instance()->dive_list()->selectedTrips().begin();
EDIT_TEXT(currentTrip->location, text);
} else if (editMode == DIVE || editMode == ADD || editMode == MANUALLY_ADDED_DIVE) {
- if (!ui.coordinates->isModified() ||
- ui.coordinates->text().trimmed().isEmpty()) {
+ // if we have a location text and haven't edited the coordinates, try to fill the coordinates
+ // from the existing dives
+ if (!text.isEmpty() &&
+ (!ui.coordinates->isModified() ||
+ ui.coordinates->text().trimmed().isEmpty())) {
struct dive *dive;
int i = 0;
for_each_dive(i, dive) {