Mercurial > geeqie
comparison src/dupe.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 | 3a9fb1b52559 |
comparison
equal
deleted
inserted
replaced
1396:58f0b4586c8c | 1397:a0bd58a6535f |
---|---|
2209 DupeWindow *dw = data; | 2209 DupeWindow *dw = data; |
2210 | 2210 |
2211 dupe_window_close(dw); | 2211 dupe_window_close(dw); |
2212 } | 2212 } |
2213 | 2213 |
2214 static void dupe_menu_popup_destroy_cb(GtkWidget *widget, gpointer data) | |
2215 { | |
2216 DupeWindow *dw = data; | |
2217 | |
2218 filelist_free(dw->editmenu_fd_list); | |
2219 dw->editmenu_fd_list = NULL; | |
2220 } | |
2221 | |
2222 static GList *dupe_window_get_fd_list(DupeWindow *dw) | |
2223 { | |
2224 GList *list; | |
2225 | |
2226 if (GTK_WIDGET_HAS_FOCUS(dw->second_listview)) | |
2227 { | |
2228 list = dupe_listview_get_selection(dw, dw->second_listview); | |
2229 } | |
2230 else | |
2231 { | |
2232 list = dupe_listview_get_selection(dw, dw->listview); | |
2233 } | |
2234 | |
2235 return list; | |
2236 } | |
2237 | |
2214 static GtkWidget *dupe_menu_popup_main(DupeWindow *dw, DupeItem *di) | 2238 static GtkWidget *dupe_menu_popup_main(DupeWindow *dw, DupeItem *di) |
2215 { | 2239 { |
2216 GtkWidget *menu; | 2240 GtkWidget *menu; |
2217 GtkWidget *item; | 2241 GtkWidget *item; |
2218 gint on_row; | 2242 gint on_row; |
2219 | 2243 |
2220 on_row = (di != NULL); | 2244 on_row = (di != NULL); |
2221 | 2245 |
2222 menu = popup_menu_short_lived(); | 2246 menu = popup_menu_short_lived(); |
2247 g_signal_connect(G_OBJECT(menu), "destroy", | |
2248 G_CALLBACK(dupe_menu_popup_destroy_cb), dw); | |
2249 | |
2223 menu_item_add_sensitive(menu, _("_View"), on_row, | 2250 menu_item_add_sensitive(menu, _("_View"), on_row, |
2224 G_CALLBACK(dupe_menu_view_cb), dw); | 2251 G_CALLBACK(dupe_menu_view_cb), dw); |
2225 menu_item_add_stock_sensitive(menu, _("View in _new window"), GTK_STOCK_NEW, on_row, | 2252 menu_item_add_stock_sensitive(menu, _("View in _new window"), GTK_STOCK_NEW, on_row, |
2226 G_CALLBACK(dupe_menu_viewnew_cb), dw); | 2253 G_CALLBACK(dupe_menu_viewnew_cb), dw); |
2227 menu_item_add_divider(menu); | 2254 menu_item_add_divider(menu); |
2232 menu_item_add_sensitive(menu, _("Select group _1 duplicates"), (dw->dupes != NULL), | 2259 menu_item_add_sensitive(menu, _("Select group _1 duplicates"), (dw->dupes != NULL), |
2233 G_CALLBACK(dupe_menu_select_dupes_set1_cb), dw); | 2260 G_CALLBACK(dupe_menu_select_dupes_set1_cb), dw); |
2234 menu_item_add_sensitive(menu, _("Select group _2 duplicates"), (dw->dupes != NULL), | 2261 menu_item_add_sensitive(menu, _("Select group _2 duplicates"), (dw->dupes != NULL), |
2235 G_CALLBACK(dupe_menu_select_dupes_set2_cb), dw); | 2262 G_CALLBACK(dupe_menu_select_dupes_set2_cb), dw); |
2236 menu_item_add_divider(menu); | 2263 menu_item_add_divider(menu); |
2237 submenu_add_edit(menu, &item, G_CALLBACK(dupe_menu_edit_cb), dw); | 2264 |
2265 dw->editmenu_fd_list = dupe_window_get_fd_list(dw); | |
2266 submenu_add_edit(menu, &item, G_CALLBACK(dupe_menu_edit_cb), dw, dw->editmenu_fd_list); | |
2238 if (!on_row) gtk_widget_set_sensitive(item, FALSE); | 2267 if (!on_row) gtk_widget_set_sensitive(item, FALSE); |
2239 menu_item_add_stock_sensitive(menu, _("Add to new collection"), GTK_STOCK_INDEX, on_row, | 2268 menu_item_add_stock_sensitive(menu, _("Add to new collection"), GTK_STOCK_INDEX, on_row, |
2240 G_CALLBACK(dupe_menu_collection_cb), dw); | 2269 G_CALLBACK(dupe_menu_collection_cb), dw); |
2241 menu_item_add_stock_sensitive(menu, _("Print..."), GTK_STOCK_PRINT, on_row, | 2270 menu_item_add_stock_sensitive(menu, _("Print..."), GTK_STOCK_PRINT, on_row, |
2242 G_CALLBACK(dupe_menu_print_cb), dw); | 2271 G_CALLBACK(dupe_menu_print_cb), dw); |