diff options
author | Lubomir I. Ivanov <neolit123@gmail.com> | 2012-10-23 17:42:27 +0300 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2012-10-24 10:31:56 -0700 |
commit | aec904b612cbee57f8bb5c3289a120b69c9ade24 (patch) | |
tree | 99928513ad14848f479595498078533be11e8c5d | |
parent | 6ea59895ad474c375a6cafaaa2baff266debf617 (diff) | |
download | subsurface-aec904b612cbee57f8bb5c3289a120b69c9ade24.tar.gz |
info.c: Make sure we only edit when there is dive selection
1) info.c: always check for "amount_selected > 0" before calling
edit_multi_dive_info().
2) populate_popup_cb() should only add the "Edit" and "Delete"
items if there are dives are selected
3) in info_menu_delete_cb() we clear the selection, therefore
we need to set "amount_selected" to 0.
Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r-- | info.c | 12 |
1 files changed, 8 insertions, 4 deletions
@@ -226,13 +226,15 @@ static int delete_dive_info(struct dive *dive) static void info_menu_edit_cb(GtkMenuItem *menuitem, gpointer user_data) { - edit_multi_dive_info(NULL); + if (amount_selected) + edit_multi_dive_info(NULL); } static void info_menu_delete_cb(GtkMenuItem *menuitem, gpointer user_data) { /* this needs to delete all the selected dives as well, I guess? */ delete_dive_info(current_dive); + amount_selected = 0; } static void add_menu_item(GtkMenu *menu, const char *label, const char *icon, void (*cb)(GtkMenuItem *, gpointer)) @@ -253,8 +255,10 @@ static void add_menu_item(GtkMenu *menu, const char *label, const char *icon, vo static void populate_popup_cb(GtkTextView *entry, GtkMenu *menu, gpointer user_data) { - add_menu_item(menu, _("Delete"), GTK_STOCK_DELETE, info_menu_delete_cb); - add_menu_item(menu, _("Edit"), GTK_STOCK_EDIT, info_menu_edit_cb); + if (amount_selected) { + add_menu_item(menu, _("Delete"), GTK_STOCK_DELETE, info_menu_delete_cb); + add_menu_item(menu, _("Edit"), GTK_STOCK_EDIT, info_menu_edit_cb); + } } static GtkEntry *text_value(GtkWidget *box, const char *label) @@ -769,7 +773,7 @@ int edit_multi_dive_info(struct dive *single_dive) int edit_dive_info(struct dive *dive) { - if (!dive) + if (!dive || !amount_selected) return 0; return edit_multi_dive_info(dive); } |