X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=main.c;h=5157c54e3e595ee0d792b9bc150830354c3f0d81;hb=42f627b8b1cf7e929a30c0a07a5fb44a4cec9e1f;hp=138de29ecf4f108adba69c8f4facf04d910996a4;hpb=0c4e1697db2d9e15a05bc76056fca13e9ccb9ba4;p=ext%2Fsubsurface.git diff --git a/main.c b/main.c index 138de29..5157c54 100644 --- a/main.c +++ b/main.c @@ -37,7 +37,7 @@ static int sortfn(const void *_a, const void *_b) * This doesn't really report anything at all. We just sort the * dives, the GUI does the reporting */ -static void report_dives(void) +void report_dives(void) { int i; @@ -98,12 +98,12 @@ void update_dive(struct dive *new_dive) if (old_dive) { flush_dive_info_changes(old_dive); flush_dive_equipment_changes(old_dive); - buffered_dive = new_dive; } if (new_dive) { show_dive_info(new_dive); show_dive_equipment(new_dive); } + buffered_dive = new_dive; } void repaint_dive(void) @@ -124,7 +124,7 @@ static void on_info_bar_response(GtkWidget *widget, gint response, } } -static void report_error(GError* error) +void report_error(GError* error) { if (error == NULL) { @@ -325,12 +325,52 @@ static void unit_dialog(GtkWidget *w, gpointer data) gtk_widget_destroy(dialog); } +static void renumber_dives(int nr) +{ + int i; + + for (i = 0; i < dive_table.nr; i++) { + struct dive *dive = dive_table.dives[i]; + dive->number = nr + i; + } +} + +static void renumber_dialog(GtkWidget *w, gpointer data) +{ + int result; + GtkWidget *dialog, *frame, *button; + + dialog = gtk_dialog_new_with_buttons("Renumber", + GTK_WINDOW(main_window), + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, + GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT, + NULL); + + frame = gtk_frame_new("New starting number"); + gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), frame); + + button = gtk_spin_button_new_with_range(1, 50000, 1); + gtk_container_add(GTK_CONTAINER(frame), button); + + gtk_widget_show_all(dialog); + result = gtk_dialog_run(GTK_DIALOG(dialog)); + if (result == GTK_RESPONSE_ACCEPT) { + int nr = gtk_spin_button_get_value(GTK_SPIN_BUTTON(button)); + renumber_dives(nr); + repaint_dive(); + } + gtk_widget_destroy(dialog); +} + static GtkActionEntry menu_items[] = { { "FileMenuAction", GTK_STOCK_FILE, "Log", NULL, NULL, NULL}, { "OpenFile", GTK_STOCK_OPEN, NULL, "O", NULL, G_CALLBACK(file_open) }, { "SaveFile", GTK_STOCK_SAVE, NULL, "S", NULL, G_CALLBACK(file_save) }, + { "Import", NULL, "Import", NULL, NULL, G_CALLBACK(import_dialog) }, + { "Units", NULL, "Units", NULL, NULL, G_CALLBACK(unit_dialog) }, + { "Renumber", NULL, "Renumber", NULL, NULL, G_CALLBACK(renumber_dialog) }, { "Quit", GTK_STOCK_QUIT, NULL, "Q", NULL, G_CALLBACK(quit) }, - { "Units", NULL, "Units", NULL, NULL, G_CALLBACK(unit_dialog) }, }; static gint nmenu_items = sizeof (menu_items) / sizeof (menu_items[0]); @@ -341,8 +381,11 @@ static const gchar* ui_string = " \ \ \ \ - \ + \ \ + \ + \ + \ \ \ \