Fixed crash when calling with "--", Code cleanup
This commit is contained in:
parent
056ce15a6f
commit
0f1dae24c0
35
src/delete.c
35
src/delete.c
|
@ -24,6 +24,7 @@
|
||||||
|
|
||||||
|
|
||||||
/* Delete */
|
/* Delete */
|
||||||
|
/* types */
|
||||||
typedef struct _Delete
|
typedef struct _Delete
|
||||||
{
|
{
|
||||||
GtkWidget * window;
|
GtkWidget * window;
|
||||||
|
@ -34,17 +35,21 @@ typedef struct _Delete
|
||||||
int cur;
|
int cur;
|
||||||
int err_cnt;
|
int err_cnt;
|
||||||
} Delete;
|
} Delete;
|
||||||
|
|
||||||
|
/* functions */
|
||||||
|
static void _delete_refresh(Delete * delete);
|
||||||
|
|
||||||
/* callbacks */
|
/* callbacks */
|
||||||
static void _delete_on_closex(GtkWidget * widget, GdkEvent * event,
|
static void _delete_on_closex(GtkWidget * widget, GdkEvent * event,
|
||||||
gpointer data);
|
gpointer data);
|
||||||
static gboolean _delete_idle(gpointer data);
|
static gboolean _delete_idle(gpointer data);
|
||||||
|
|
||||||
static int _delete(int filec, char * filev[])
|
static int _delete(int filec, char * filev[])
|
||||||
{
|
{
|
||||||
static Delete delete;
|
static Delete delete;
|
||||||
GtkWidget * vbox;
|
GtkWidget * vbox;
|
||||||
GtkWidget * hbox;
|
GtkWidget * hbox;
|
||||||
GtkWidget * widget;
|
GtkWidget * widget;
|
||||||
char buf[256];
|
|
||||||
|
|
||||||
delete.filec = filec;
|
delete.filec = filec;
|
||||||
delete.filev = filev;
|
delete.filev = filev;
|
||||||
|
@ -55,12 +60,9 @@ static int _delete(int filec, char * filev[])
|
||||||
g_signal_connect(G_OBJECT(delete.window), "delete_event", G_CALLBACK(
|
g_signal_connect(G_OBJECT(delete.window), "delete_event", G_CALLBACK(
|
||||||
_delete_on_closex), NULL);
|
_delete_on_closex), NULL);
|
||||||
vbox = gtk_vbox_new(FALSE, 4);
|
vbox = gtk_vbox_new(FALSE, 4);
|
||||||
snprintf(buf, sizeof(buf), "Deleting file: %s", filev[0]);
|
delete.label = gtk_label_new("");
|
||||||
delete.label = gtk_label_new(buf);
|
|
||||||
gtk_box_pack_start(GTK_BOX(vbox), delete.label, TRUE, TRUE, 4);
|
gtk_box_pack_start(GTK_BOX(vbox), delete.label, TRUE, TRUE, 4);
|
||||||
delete.progress = gtk_progress_bar_new();
|
delete.progress = gtk_progress_bar_new();
|
||||||
snprintf(buf, sizeof(buf), "File 1 of %u", filec);
|
|
||||||
gtk_progress_bar_set_text(GTK_PROGRESS_BAR(delete.progress), buf);
|
|
||||||
gtk_box_pack_start(GTK_BOX(vbox), delete.progress, TRUE, TRUE, 4);
|
gtk_box_pack_start(GTK_BOX(vbox), delete.progress, TRUE, TRUE, 4);
|
||||||
hbox = gtk_hbox_new(FALSE, 4);
|
hbox = gtk_hbox_new(FALSE, 4);
|
||||||
widget = gtk_button_new_from_stock(GTK_STOCK_CANCEL);
|
widget = gtk_button_new_from_stock(GTK_STOCK_CANCEL);
|
||||||
|
@ -69,10 +71,23 @@ static int _delete(int filec, char * filev[])
|
||||||
gtk_container_set_border_width(GTK_CONTAINER(delete.window), 4);
|
gtk_container_set_border_width(GTK_CONTAINER(delete.window), 4);
|
||||||
gtk_container_add(GTK_CONTAINER(delete.window), vbox);
|
gtk_container_add(GTK_CONTAINER(delete.window), vbox);
|
||||||
g_idle_add(_delete_idle, &delete);
|
g_idle_add(_delete_idle, &delete);
|
||||||
|
_delete_refresh(&delete);
|
||||||
gtk_widget_show_all(delete.window);
|
gtk_widget_show_all(delete.window);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void _delete_refresh(Delete * delete)
|
||||||
|
{
|
||||||
|
char buf[256];
|
||||||
|
|
||||||
|
snprintf(buf, sizeof(buf), "Deleting file: %s",
|
||||||
|
delete->filev[delete->cur]);
|
||||||
|
gtk_label_set_text(GTK_LABEL(delete->label), buf);
|
||||||
|
snprintf(buf, sizeof(buf), "File %u of %u", delete->cur+1,
|
||||||
|
delete->filec);
|
||||||
|
gtk_progress_bar_set_text(GTK_PROGRESS_BAR(delete->progress), buf);
|
||||||
|
}
|
||||||
|
|
||||||
static void _delete_on_closex(GtkWidget * widget, GdkEvent * event,
|
static void _delete_on_closex(GtkWidget * widget, GdkEvent * event,
|
||||||
gpointer data)
|
gpointer data)
|
||||||
{
|
{
|
||||||
|
@ -84,7 +99,6 @@ static gboolean _delete_idle(gpointer data)
|
||||||
{
|
{
|
||||||
Delete * delete = (Delete*)data;
|
Delete * delete = (Delete*)data;
|
||||||
GtkWidget * dialog;
|
GtkWidget * dialog;
|
||||||
char buf[256];
|
|
||||||
|
|
||||||
if(unlink(delete->filev[delete->cur++]) != 0)
|
if(unlink(delete->filev[delete->cur++]) != 0)
|
||||||
{
|
{
|
||||||
|
@ -103,12 +117,7 @@ static gboolean _delete_idle(gpointer data)
|
||||||
gtk_main_quit();
|
gtk_main_quit();
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
snprintf(buf, sizeof(buf), "Deleting file: %s",
|
_delete_refresh(delete);
|
||||||
delete->filev[delete->cur]);
|
|
||||||
gtk_label_set_text(GTK_LABEL(delete->label), buf);
|
|
||||||
snprintf(buf, sizeof(buf), "File %u of %u", delete->cur+1,
|
|
||||||
delete->filec);
|
|
||||||
gtk_progress_bar_set_text(GTK_PROGRESS_BAR(delete->progress), buf);
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -138,6 +147,7 @@ int main(int argc, char * argv[])
|
||||||
{
|
{
|
||||||
int o;
|
int o;
|
||||||
|
|
||||||
|
gtk_init(&argc, &argv);
|
||||||
while((o = getopt(argc, argv, "")) != -1)
|
while((o = getopt(argc, argv, "")) != -1)
|
||||||
switch(o)
|
switch(o)
|
||||||
{
|
{
|
||||||
|
@ -146,7 +156,6 @@ int main(int argc, char * argv[])
|
||||||
}
|
}
|
||||||
if(optind == argc)
|
if(optind == argc)
|
||||||
return _usage();
|
return _usage();
|
||||||
gtk_init(&argc, &argv);
|
|
||||||
_delete(argc - optind, &argv[optind]);
|
_delete(argc - optind, &argv[optind]);
|
||||||
gtk_main();
|
gtk_main();
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user