]> git.tdb.fi Git - ext/subsurface.git/blobdiff - divelist.c
Fix profile and average depth for freedives
[ext/subsurface.git] / divelist.c
index a3bb1fb5eb897320cdd382728778fc01f3274f15..a773b60179674084a2dfe251e5537bf37285e64d 100644 (file)
@@ -92,7 +92,7 @@ void dump_selection(void)
        struct dive *dive;
 
        printf("currently selected are %d dives:", amount_selected);
-       for (i = 0; (dive = get_dive(i)) != NULL; i++) {
+       for_each_dive(i, dive) {
                if (dive->selected)
                        printf(" %d", i);
        }
@@ -893,8 +893,6 @@ static void fill_dive_list(void)
 
        /* if we have pre-existing trips, start on the last one */
        trip = g_list_last(dive_trip_list);
-       if (trip)
-               dive_trip = DIVE_TRIP(trip);
 
        treestore = GTK_TREE_STORE(dive_list.treemodel);
        liststore = GTK_TREE_STORE(dive_list.listmodel);
@@ -911,6 +909,9 @@ static void fill_dive_list(void)
                                        DIVE_LOCATION, dive_trip->location,
                                        -1);
                }
+               /* the dive_trip info might have been killed by a previous UNGROUPED dive */
+               if (trip)
+                       dive_trip = DIVE_TRIP(trip);
                /* tripflag defines how dives are handled;
                 * TF_NONE "not handled yet" - create time based group if autogroup == TRUE
                 * NO_TRIP "set as no group" - simply leave at top level
@@ -925,7 +926,7 @@ static void fill_dive_list(void)
                                /* allocate new trip - all fields default to 0
                                   and get filled in further down */
                                dive_trip = alloc_dive();
-                               dive_trip_list = INSERT_TRIP(dive_trip, dive_trip_list);
+                               dive_trip_list = insert_trip(dive_trip, dive_trip_list);
                                trip = FIND_TRIP(dive_trip, dive_trip_list);
                        }
                } else { /* either the dive has a trip or we aren't creating trips */
@@ -938,7 +939,7 @@ static void fill_dive_list(void)
                                         * Otherwise we need to create a new trip */
                                        if (autogroup) {
                                                dive_trip = alloc_dive();
-                                               dive_trip_list = INSERT_TRIP(dive_trip, dive_trip_list);
+                                               dive_trip_list = insert_trip(dive_trip, dive_trip_list);
                                                trip = FIND_TRIP(dive_trip, dive_trip_list);
                                        } else {
                                                /* let's go back to the last valid trip */
@@ -1138,7 +1139,7 @@ void add_dive_cb(GtkWidget *menuitem, gpointer data)
 
 void edit_dive_cb(GtkWidget *menuitem, gpointer data)
 {
-       edit_multi_dive_info(-1);
+       edit_multi_dive_info(NULL);
 }
 
 static void expand_all_cb(GtkWidget *menuitem, GtkTreeView *tree_view)