summaryrefslogtreecommitdiffstats
path: root/info.c
diff options
context:
space:
mode:
Diffstat (limited to 'info.c')
-rw-r--r--info.c23
1 files changed, 10 insertions, 13 deletions
diff --git a/info.c b/info.c
index 468f35772..cccc6497b 100644
--- a/info.c
+++ b/info.c
@@ -1,7 +1,7 @@
/* info.c */
-/* creates the UI for the info frame -
+/* creates the UI for the info frame -
* controlled through the following interfaces:
- *
+ *
* void show_dive_info(struct dive *dive)
*
* called from gtk-ui:
@@ -166,7 +166,7 @@ static int delete_dive_info(struct dive *dive)
static void info_menu_edit_cb(GtkMenuItem *menuitem, gpointer user_data)
{
- edit_multi_dive_info(-1);
+ edit_multi_dive_info(NULL);
}
static void info_menu_delete_cb(GtkMenuItem *menuitem, gpointer user_data)
@@ -482,7 +482,7 @@ void update_equipment_data(struct dive *dive, struct dive *master)
if ( ! cylinders_equal(remember_cyl, master->cylinder) &&
(no_cylinders(dive->cylinder) ||
cylinders_equal(dive->cylinder, remember_cyl)))
- memcpy(dive->cylinder, master->cylinder, CYL_BYTES);
+ copy_cylinders(master->cylinder, dive->cylinder);
if (! weightsystems_equal(remember_ws, master->weightsystem) &&
(no_weightsystems(dive->weightsystem) ||
weightsystems_equal(dive->weightsystem, remember_ws)))
@@ -490,7 +490,7 @@ void update_equipment_data(struct dive *dive, struct dive *master)
}
/* A negative index means "all selected" */
-int edit_multi_dive_info(int index)
+int edit_multi_dive_info(struct dive *single_dive)
{
int success;
GtkWidget *dialog, *vbox;
@@ -505,21 +505,21 @@ int edit_multi_dive_info(int index)
NULL);
vbox = gtk_dialog_get_content_area(GTK_DIALOG(dialog));
- master = get_dive(index);
+ master = single_dive;
if (!master)
master = current_dive;
- dive_info_widget(vbox, master, &info, index < 0);
+ dive_info_widget(vbox, master, &info, !single_dive);
show_dive_equipment(master, W_IDX_SECONDARY);
save_equipment_data(master);
gtk_widget_show_all(dialog);
success = gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT;
if (success) {
/* Update the non-current selected dives first */
- if (index < 0) {
+ if (!single_dive) {
int i;
struct dive *dive;
- for (i = 0; (dive = get_dive(i)) != NULL; i++) {
+ for_each_dive(i, dive) {
if (dive == master || !dive->selected)
continue;
/* copy all "info" fields */
@@ -544,12 +544,9 @@ int edit_multi_dive_info(int index)
int edit_dive_info(struct dive *dive)
{
- int idx;
-
if (!dive)
return 0;
- idx = dive->number;
- return edit_multi_dive_info(idx);
+ return edit_multi_dive_info(dive);
}
static GtkWidget *frame_box(GtkWidget *vbox, const char *fmt, ...)