diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2014-04-28 09:34:27 -0700 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2014-04-28 09:34:27 -0700 |
commit | dad3c5d9db5c5ccecf972c405c9b53c82d5ee1a8 (patch) | |
tree | 5537a940c3e0408d188b9d9af171a8997d434360 | |
parent | de9360e2e00508000ab51daa126e6aa1149b24ad (diff) | |
download | subsurface-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.cpp | 7 |
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) { |