Added an immediate delete action in the popup menu
This commit is contained in:
parent
43c196c9b9
commit
34f085bf70
|
@ -711,8 +711,9 @@ void on_filename_edited(GtkCellRendererText * renderer, gchar * arg1,
|
|||
|
||||
static gboolean _popup_show(Browser * browser, GdkEventButton * event,
|
||||
GtkWidget * menu);
|
||||
static void on_icon_open(GtkWidget * widget, gpointer data);
|
||||
static void on_icon_delete(GtkWidget * widget, gpointer data);
|
||||
static void on_icon_edit(GtkWidget * widget, gpointer data);
|
||||
static void on_icon_open(GtkWidget * widget, gpointer data);
|
||||
gboolean on_view_popup(GtkWidget * widget, GdkEventButton * event,
|
||||
gpointer data)
|
||||
{
|
||||
|
@ -758,6 +759,7 @@ gboolean on_view_popup(GtkWidget * widget, GdkEventButton * event,
|
|||
gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
|
||||
if(_icon_cb_data.isdir != TRUE)
|
||||
{
|
||||
/* FIXME does not handle multiple selection */
|
||||
#if GTK_CHECK_VERSION(2, 6, 0)
|
||||
menuitem = gtk_image_menu_item_new_from_stock(GTK_STOCK_EDIT,
|
||||
NULL);
|
||||
|
@ -767,6 +769,13 @@ gboolean on_view_popup(GtkWidget * widget, GdkEventButton * event,
|
|||
g_signal_connect(G_OBJECT(menuitem), "activate", G_CALLBACK(
|
||||
on_icon_edit), &_icon_cb_data);
|
||||
gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
|
||||
menuitem = gtk_separator_menu_item_new();
|
||||
gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
|
||||
menuitem = gtk_image_menu_item_new_from_stock(GTK_STOCK_DELETE,
|
||||
NULL);
|
||||
g_signal_connect(G_OBJECT(menuitem), "activate", G_CALLBACK(
|
||||
on_icon_delete), &_icon_cb_data);
|
||||
gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
|
||||
}
|
||||
menuitem = gtk_separator_menu_item_new();
|
||||
gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
|
||||
|
@ -795,6 +804,26 @@ static gboolean _popup_show(Browser * browser, GdkEventButton * event,
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
static void on_icon_delete(GtkWidget * widget, gpointer data)
|
||||
{
|
||||
IconCallback * cb = data;
|
||||
pid_t pid;
|
||||
char * argv[] = { "delete", "delete", cb->path, NULL };
|
||||
|
||||
/* FIXME factorize this code in browser.c */
|
||||
if((pid = fork()) == -1)
|
||||
{
|
||||
browser_error(cb->browser, "fork", 0);
|
||||
return;
|
||||
}
|
||||
else if(pid != 0)
|
||||
return;
|
||||
execvp(argv[0], argv);
|
||||
fprintf(stderr, "%s%s%s%s\n", "browser: ", argv[0], ": ",
|
||||
strerror(errno));
|
||||
exit(2);
|
||||
}
|
||||
|
||||
static void on_icon_edit(GtkWidget * widget, gpointer data)
|
||||
{
|
||||
IconCallback * cb = data;
|
||||
|
|
Loading…
Reference in New Issue
Block a user