diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2013-03-17 18:07:59 -0700 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2013-03-17 20:04:25 -0700 |
commit | 8a5792d473bb30a6f5cbfd2168c4427c16436031 (patch) | |
tree | 58ec7fcb24aec27de5c7b4d2511478ed6550c1b1 /dive.c | |
parent | bfa37c3cac22949323bb6a5dfb23557638d20757 (diff) | |
download | subsurface-8a5792d473bb30a6f5cbfd2168c4427c16436031.tar.gz |
Manually add gas changes to a dive
Create a little widget that lists all the gases / tanks we know about and
allow the user to pick one of them.
Turns out that add_event only added events at the end of the list - but we
treat that list as chronologically sorted. So I fixed that little
mis-feature as well.
This does raise the question whether we need the inverse operation
(removing a gas change). And if there are other things that we should be
able to manually edit, now that we have the infrastructure for this neat
little context menu...
See #60 -- this doesn't address all of the issues mentioned there, but at
least deals with the 'headline' of the feature request...
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'dive.c')
-rw-r--r-- | dive.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -21,11 +21,13 @@ void add_event(struct divecomputer *dc, int time, int type, int flags, int value ev->type = type; ev->flags = flags; ev->value = value; - ev->next = NULL; p = &dc->events; - while (*p) + + /* insert in the sorted list of events */ + while (*p && (*p)->time.seconds < time) p = &(*p)->next; + ev->next = *p; *p = ev; remember_event(name); } |