mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Mark manually entered waypoints as such
With this information, when we re-plan a dive we can bring the user right back to the point where they ended - they have the waypoints in the dive pointes table and handles are shown on the right points in the profile - and the rest of the dive is once again calculated by the planning algorithm. For now this state is lost when saving the dive file as we don't add this flag in the sample to our saved files. So if we don't find any samples marked as manually added we add ALL of the samples as way points on the diveplan and the user has to manually remove the ones that were calculated. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
f7119bdccf
commit
5b0f4e79c4
3 changed files with 13 additions and 2 deletions
|
@ -111,10 +111,16 @@ void DivePlannerPointsModel::loadFromDive(dive *d)
|
|||
CylindersModel::instance()->updateDive();
|
||||
duration_t lasttime = {};
|
||||
struct gasmix gas;
|
||||
free_dps(&diveplan);
|
||||
diveplan.when = d->when;
|
||||
// is this a "new" dive where we marked manually entered samples?
|
||||
// if yes then the first sample should be marked
|
||||
// if it is we only add the manually entered samples as waypoints to the diveplan
|
||||
// otherwise we have to add all of them
|
||||
bool hasMarkedSamples = d->dc.sample[0].manually_entered;
|
||||
for (int i = 0; i < d->dc.samples - 1; i++) {
|
||||
const sample &s = d->dc.sample[i];
|
||||
if (s.time.seconds == 0)
|
||||
if (s.time.seconds == 0 || (hasMarkedSamples && !s.manually_entered))
|
||||
continue;
|
||||
get_gas_at_time(d, &d->dc, lasttime, &gas);
|
||||
plannerModel->addStop(s.depth.mm, s.time.seconds, &gas, 0, true);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue