diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2013-11-07 17:25:42 +0900 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2013-11-07 18:07:10 +0900 |
commit | 460aa4c1bdee64f25e1c846ac9a6182e4e8e9820 (patch) | |
tree | 0e651be7983f0728dff52c963448dd5ac7982b58 | |
parent | f2035bcd797cab0b6be180b160bca3e768ccb652 (diff) | |
download | subsurface-460aa4c1bdee64f25e1c846ac9a6182e4e8e9820.tar.gz |
Include the cylinder information in a dive added with "Add Dive"
We only copied the samples, but not the related cylinder data.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r-- | dive.c | 11 | ||||
-rw-r--r-- | dive.h | 1 | ||||
-rw-r--r-- | qt-ui/diveplanner.cpp | 5 |
3 files changed, 15 insertions, 2 deletions
@@ -195,7 +195,16 @@ struct dive *alloc_dive(void) return dive; } -void copy_samples(struct dive* s, struct dive* d) +void copy_cylinders(struct dive *s, struct dive *d) +{ + int i; + if (!s || !d) + return; + for (i = 0; i < MAX_CYLINDERS; i++) + d->cylinder[i] = s->cylinder[i]; +} + +void copy_samples(struct dive *s, struct dive *d) { /* instead of carefully copying them one by one and calling add_sample * over and over again, let's just copy the whole blob */ @@ -653,6 +653,7 @@ extern unsigned int dc_airtemp(struct divecomputer *dc); extern struct dive *merge_dives(struct dive *a, struct dive *b, int offset, bool prefer_downloaded); extern struct dive *try_to_merge(struct dive *a, struct dive *b, bool prefer_downloaded); extern void renumber_dives(int nr); +extern void copy_cylinders(struct dive *s, struct dive *d); extern void copy_samples(struct dive *s, struct dive *d); extern void add_gas_switch_event(struct dive *dive, struct divecomputer *dc, int time, int idx); diff --git a/qt-ui/diveplanner.cpp b/qt-ui/diveplanner.cpp index 169158987..39db8f431 100644 --- a/qt-ui/diveplanner.cpp +++ b/qt-ui/diveplanner.cpp @@ -437,6 +437,7 @@ void DivePlannerPointsModel::loadFromDive(dive* d) } Q_FOREACH(const sample &s, backupSamples){ + // we need to use the correct gas plannerModel->addStop(s.depth.mm, s.time.seconds, tr("Air"), 0); } } @@ -1190,8 +1191,10 @@ void DivePlannerPointsModel::createTemporaryPlan() tempDive = NULL; const char *errorString = NULL; plan(&diveplan, &cache, &tempDive, isPlanner(), &errorString); - if (mode == ADD) + if (mode == ADD) { copy_samples(tempDive, current_dive); + copy_cylinders(tempDive, current_dive); + } #if DEBUG_PLAN dump_plan(&diveplan); #endif |