Mercurial > geeqie.yaz
comparison src/search.c @ 1397:a0bd58a6535f
In various Edit context menus, only display editors that match the file types in the selection.
author | zas_ |
---|---|
date | Sun, 08 Mar 2009 13:23:25 +0000 |
parents | fe4da037be21 |
children | cf4029d10d38 |
comparison
equal
deleted
inserted
replaced
1396:58f0b4586c8c | 1397:a0bd58a6535f |
---|---|
188 FileData *click_fd; | 188 FileData *click_fd; |
189 | 189 |
190 ThumbLoader *thumb_loader; | 190 ThumbLoader *thumb_loader; |
191 gint thumb_enable; | 191 gint thumb_enable; |
192 FileData *thumb_fd; | 192 FileData *thumb_fd; |
193 | |
194 /* file list for edit menu */ | |
195 GList *editmenu_fd_list; | |
196 | |
193 }; | 197 }; |
194 | 198 |
195 typedef struct _MatchFileData MatchFileData; | 199 typedef struct _MatchFileData MatchFileData; |
196 struct _MatchFileData | 200 struct _MatchFileData |
197 { | 201 { |
977 SearchData *sd = data; | 981 SearchData *sd = data; |
978 | 982 |
979 search_result_clear(sd); | 983 search_result_clear(sd); |
980 } | 984 } |
981 | 985 |
986 static void search_result_menu_destroy_cb(GtkWidget *widget, gpointer data) | |
987 { | |
988 SearchData *sd = data; | |
989 | |
990 filelist_free(sd->editmenu_fd_list); | |
991 sd->editmenu_fd_list = NULL; | |
992 } | |
993 | |
982 static GtkWidget *search_result_menu(SearchData *sd, gint on_row, gint empty) | 994 static GtkWidget *search_result_menu(SearchData *sd, gint on_row, gint empty) |
983 { | 995 { |
984 GtkWidget *menu; | 996 GtkWidget *menu; |
985 GtkWidget *item; | 997 GtkWidget *item; |
986 | 998 |
987 menu = popup_menu_short_lived(); | 999 menu = popup_menu_short_lived(); |
1000 g_signal_connect(G_OBJECT(menu), "destroy", | |
1001 G_CALLBACK(search_result_menu_destroy_cb), sd); | |
1002 | |
988 menu_item_add_sensitive(menu, _("_View"), on_row, | 1003 menu_item_add_sensitive(menu, _("_View"), on_row, |
989 G_CALLBACK(sr_menu_view_cb), sd); | 1004 G_CALLBACK(sr_menu_view_cb), sd); |
990 menu_item_add_stock_sensitive(menu, _("View in _new window"), GTK_STOCK_NEW, on_row, | 1005 menu_item_add_stock_sensitive(menu, _("View in _new window"), GTK_STOCK_NEW, on_row, |
991 G_CALLBACK(sr_menu_viewnew_cb), sd); | 1006 G_CALLBACK(sr_menu_viewnew_cb), sd); |
992 menu_item_add_divider(menu); | 1007 menu_item_add_divider(menu); |
993 menu_item_add_sensitive(menu, _("Select all"), !empty, | 1008 menu_item_add_sensitive(menu, _("Select all"), !empty, |
994 G_CALLBACK(sr_menu_select_all_cb), sd); | 1009 G_CALLBACK(sr_menu_select_all_cb), sd); |
995 menu_item_add_sensitive(menu, _("Select none"), !empty, | 1010 menu_item_add_sensitive(menu, _("Select none"), !empty, |
996 G_CALLBACK(sr_menu_select_none_cb), sd); | 1011 G_CALLBACK(sr_menu_select_none_cb), sd); |
997 menu_item_add_divider(menu); | 1012 menu_item_add_divider(menu); |
998 submenu_add_edit(menu, &item, G_CALLBACK(sr_menu_edit_cb), sd); | 1013 |
1014 sd->editmenu_fd_list = search_result_selection_list(sd); | |
1015 submenu_add_edit(menu, &item, G_CALLBACK(sr_menu_edit_cb), sd, sd->editmenu_fd_list); | |
999 if (!on_row) gtk_widget_set_sensitive(item, FALSE); | 1016 if (!on_row) gtk_widget_set_sensitive(item, FALSE); |
1000 menu_item_add_stock_sensitive(menu, _("Add to new collection"), GTK_STOCK_INDEX, on_row, | 1017 menu_item_add_stock_sensitive(menu, _("Add to new collection"), GTK_STOCK_INDEX, on_row, |
1001 G_CALLBACK(sr_menu_collection_cb), sd); | 1018 G_CALLBACK(sr_menu_collection_cb), sd); |
1002 menu_item_add_stock_sensitive(menu, _("Print..."), GTK_STOCK_PRINT, on_row, | 1019 menu_item_add_stock_sensitive(menu, _("Print..."), GTK_STOCK_PRINT, on_row, |
1003 G_CALLBACK(sr_menu_print_cb), sd); | 1020 G_CALLBACK(sr_menu_print_cb), sd); |