From 4a7432e3d512977437afa3933cc242b6410b468a Mon Sep 17 00:00:00 2001 From: Dirk Hohndel Date: Sat, 16 Aug 2014 18:33:09 -0600 Subject: Don't always clear the dive before selectively copying This will be needed when pasting the data back into a (set of) dive(s). Signed-off-by: Dirk Hohndel --- dive.c | 6 ++++-- dive.h | 2 +- qt-ui/simplewidgets.cpp | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/dive.c b/dive.c index 88233d394..38599b104 100644 --- a/dive.c +++ b/dive.c @@ -426,9 +426,10 @@ struct dive *clone_dive(struct dive *s) d->_component = copy_string(s->_component) // copy elements, depending on bits in what that are set -void selective_copy_dive(struct dive *s, struct dive *d, struct dive_components what) +void selective_copy_dive(struct dive *s, struct dive *d, struct dive_components what, bool clear) { - clear_dive(d); + if (clear) + clear_dive(d); CONDITIONAL_COPY_STRING(location); CONDITIONAL_COPY_STRING(notes); CONDITIONAL_COPY_STRING(divemaster); @@ -502,6 +503,7 @@ void copy_cylinders(struct dive *s, struct dive *d, bool used_only) d->cylinder[i].type = s->cylinder[i].type; d->cylinder[i].gasmix = s->cylinder[i].gasmix; d->cylinder[i].depth = s->cylinder[i].depth; + d->cylinder[i].manually_added = true; } } } diff --git a/dive.h b/dive.h index 1756f4a64..8232e5407 100644 --- a/dive.h +++ b/dive.h @@ -621,7 +621,7 @@ extern struct dive *alloc_dive(void); extern void record_dive(struct dive *dive); extern void clear_dive(struct dive *dive); extern void copy_dive(struct dive *s, struct dive *d); -extern void selective_copy_dive(struct dive *s, struct dive *d, struct dive_components what); +extern void selective_copy_dive(struct dive *s, struct dive *d, struct dive_components what, bool clear); extern struct dive *clone_dive(struct dive *s); extern struct sample *prepare_sample(struct divecomputer *dc); diff --git a/qt-ui/simplewidgets.cpp b/qt-ui/simplewidgets.cpp index a10092ff6..b0b900fe4 100644 --- a/qt-ui/simplewidgets.cpp +++ b/qt-ui/simplewidgets.cpp @@ -450,6 +450,6 @@ void DiveComponentSelection::buttonClicked(QAbstractButton *button) COMPONENT_FROM_UI(suit); COMPONENT_FROM_UI(cylinders); COMPONENT_FROM_UI(weights); - selective_copy_dive(&displayed_dive, targetDive, *what); + selective_copy_dive(&displayed_dive, targetDive, *what, true); } } -- cgit v1.2.3-70-g09d2