#include <stdio.h>
+#include <string.h>
#include <stdlib.h>
#include <time.h>
*/
static void report_dives(void)
{
+ int i;
+
qsort(dive_table.dives, dive_table.nr, sizeof(struct dive *), sortfn);
+
+ for (i = 1; i < dive_table.nr; i++) {
+ struct dive **pp = &dive_table.dives[i-1];
+ struct dive *prev = pp[0];
+ struct dive *dive = pp[1];
+ struct dive *merged;
+
+ if (prev->when + prev->duration.seconds < dive->when)
+ continue;
+
+ merged = try_to_merge(prev, dive);
+ if (!merged)
+ continue;
+
+ free(prev);
+ free(dive);
+ *pp = merged;
+ dive_table.nr--;
+ memmove(pp+1, pp+2, sizeof(*pp)*(dive_table.nr - i));
+
+ /* Redo the new 'i'th dive */
+ i--;
+ }
}
static void parse_argument(const char *arg)
if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) {
char *filename;
filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
- printf("Save: '%s'\n", filename);
+ save_dives(filename);
g_free(filename);
}
gtk_widget_destroy(dialog);
/* Frame for minimal dive info */
frame = dive_info_frame();
- gtk_table_attach(GTK_TABLE(table), frame, 1, 2, 0, 1, 0, 0, 0, 0);
+ gtk_table_attach(GTK_TABLE(table), frame, 1, 2, 0, 1,
+ GTK_FILL | GTK_SHRINK | GTK_EXPAND, 0, 0, 0);
/* Notebook for dive info vs profile vs .. */
notebook = gtk_notebook_new();