aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--dive.c11
-rw-r--r--dive.h1
-rw-r--r--qt-ui/profile/profilewidget2.cpp8
3 files changed, 13 insertions, 7 deletions
diff --git a/dive.c b/dive.c
index d9943c23f..7e211f163 100644
--- a/dive.c
+++ b/dive.c
@@ -65,6 +65,17 @@ void add_event(struct divecomputer *dc, int time, int type, int flags, int value
remember_event(name);
}
+void remove_event(struct event* event)
+{
+ struct event **ep = &current_dc->events;
+ while (ep && *ep != event)
+ ep = &(*ep)->next;
+ if (ep) {
+ *ep = event->next;
+ free(event);
+ }
+}
+
int get_pressure_units(unsigned int mb, const char **units)
{
int pressure;
diff --git a/dive.h b/dive.h
index a4bc7f08b..11a724cbe 100644
--- a/dive.h
+++ b/dive.h
@@ -562,6 +562,7 @@ extern void copy_samples(struct dive *s, struct dive *d);
extern void fill_default_cylinder(cylinder_t *cyl);
extern void add_gas_switch_event(struct dive *dive, struct divecomputer *dc, int time, int idx);
extern void add_event(struct divecomputer *dc, int time, int type, int flags, int value, const char *name);
+extern void remove_event(struct event* event);
extern void per_cylinder_mean_depth(struct dive *dive, struct divecomputer *dc, int *mean, int *duration);
extern int get_cylinder_index(struct dive *dive, struct event *ev);
extern int nr_cylinders(struct dive *dive);
diff --git a/qt-ui/profile/profilewidget2.cpp b/qt-ui/profile/profilewidget2.cpp
index d95a32be8..4a599d711 100644
--- a/qt-ui/profile/profilewidget2.cpp
+++ b/qt-ui/profile/profilewidget2.cpp
@@ -830,13 +830,7 @@ void ProfileWidget2::removeEvent()
tr("Remove the selected event?"),
tr("%1 @ %2:%3").arg(event->name).arg(event->time.seconds / 60).arg(event->time.seconds % 60, 2, 10, QChar('0'))),
QMessageBox::Ok | QMessageBox::Cancel) == QMessageBox::Ok) {
- struct event **ep = &current_dc->events;
- while (ep && *ep != event)
- ep = &(*ep)->next;
- if (ep) {
- *ep = event->next;
- free(event);
- }
+ remove_event(event);
mark_divelist_changed(true);
replot();
}