diff options
author | Mikko Rasa <tdb@tdb.fi> | 2012-08-22 00:35:08 +0300 |
---|---|---|
committer | Mikko Rasa <tdb@tdb.fi> | 2012-08-22 00:43:59 +0300 |
commit | df1f506b4e874a9c5afad8d31989a2389bbcdf2d (patch) | |
tree | 2108bfeaeaa3bb7ca5fbe8ddebdba231bde03cac /info.c | |
parent | c6be2404dafcb5032f8e35d31bca570f0ae80ef6 (diff) | |
download | subsurface-df1f506b4e874a9c5afad8d31989a2389bbcdf2d.tar.gz |
Check if multi-dive editing is actually needed
Context menu callbacks always invoke edit_multi_dive_info(-1) instead of
edit_dive_info. Since -1 means "all selected", it was impossible to edit
dive notes through the context menus. This commit makes the function
check if multiple dives are actually selected.
Signed-off-by: Mikko Rasa <tdb@tdb.fi>
Diffstat (limited to 'info.c')
-rw-r--r-- | info.c | 19 |
1 files changed, 18 insertions, 1 deletions
@@ -496,6 +496,7 @@ int edit_multi_dive_info(int index) GtkWidget *dialog, *vbox; struct dive_info info; struct dive *master; + gboolean multi; dialog = gtk_dialog_new_with_buttons("Dive Info", GTK_WINDOW(main_window), @@ -508,7 +509,23 @@ int edit_multi_dive_info(int index) master = get_dive(index); if (!master) master = current_dive; - dive_info_widget(vbox, master, &info, index < 0); + + /* See if we should use multi dive mode */ + multi = FALSE; + if (index < 0) + { + int i; + struct dive *dive; + + for (i = 0; (dive = get_dive(i)) != NULL; i++) { + if (dive != master && dive->selected) { + multi = TRUE; + break; + } + } + } + + dive_info_widget(vbox, master, &info, multi); show_dive_equipment(master, W_IDX_SECONDARY); save_equipment_data(master); gtk_widget_show_all(dialog); |