make GPS coordinates autofilling really work

Move the gpsHasChanged() call on selected dive when coordinates have
changed *before* autofilling, otherwise it erases the autofilled values.

Also update displayed_dive when autofilling, otherwise values are stored
but not displayed immediately after saving.

Signed-off-by: Gaetan Bisson <bisson@archlinux.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Gaetan Bisson 2014-07-07 21:45:16 -10:00 committed by Dirk Hohndel
parent f79c659b10
commit c054b18b70

View file

@ -690,6 +690,10 @@ void MainTab::acceptChanges()
time_t offset = current_dive->when - displayed_dive.when;
MODIFY_SELECTED_DIVES(mydive->when -= offset;);
}
if (displayed_dive.latitude.udeg != current_dive->latitude.udeg ||
displayed_dive.longitude.udeg != current_dive->longitude.udeg) {
MODIFY_SELECTED_DIVES(gpsHasChanged(mydive, cd, ui.coordinates->text(), 0));
}
if (!same_string(displayed_dive.location, cd->location)) {
MODIFY_SELECTED_DIVES(EDIT_TEXT(location));
// if we have a location text and haven't edited the coordinates, try to fill the coordinates
@ -707,16 +711,14 @@ void MainTab::acceptChanges()
mydive->latitude = dive->latitude;
mydive->longitude = dive->longitude;
});
displayed_dive.latitude = dive->latitude;
displayed_dive.longitude = dive->longitude;
MainWindow::instance()->globe()->reload();
break;
}
}
}
}
if (displayed_dive.latitude.udeg != current_dive->latitude.udeg ||
displayed_dive.longitude.udeg != current_dive->longitude.udeg) {
MODIFY_SELECTED_DIVES(gpsHasChanged(mydive, cd, ui.coordinates->text(), 0));
}
if (tagsChanged(&displayed_dive, cd))
saveTags();