--- a/src/gtkft.c Sat May 22 18:07:23 2004 +0000 +++ b/src/gtkft.c Sat May 22 19:55:39 2004 +0000 @@ -82,6 +82,7 @@ GtkWidget *filesel; GtkTreeIter iter; time_t start_time; + time_t end_time; gboolean in_list; char *name; @@ -121,7 +122,14 @@ data = GAIM_GTKXFER(xfer); - now = time(NULL); + if (data->end_time == -1 && + (gaim_xfer_is_canceled(xfer) || gaim_xfer_is_completed(xfer))) + data->end_time = time(NULL); + + if (data->end_time != -1) + now = data->end_time; + else + now = time(NULL); kb_sent = gaim_xfer_get_bytes_sent(xfer) / 1024.0; kb_rem = gaim_xfer_get_bytes_remaining(xfer) / 1024.0; @@ -155,6 +163,12 @@ else if (gaim_xfer_is_completed(xfer)) { *time_remaining = g_strdup(_("Finished")); } + else if (gaim_xfer_is_canceled(xfer)) { + *time_remaining = g_strdup(_("Canceled")); + } + else if (kb_sent <= 0) { + *time_remaining = g_strdup(_("Waiting for transfer to begin")); + } else { int h, m, s; int secs_remaining; @@ -805,6 +819,7 @@ gaim_gtkxfer_dialog_show(dialog); data->start_time = time(NULL); + data->end_time = -1; type = gaim_xfer_get_type(xfer); @@ -900,6 +915,8 @@ data = GAIM_GTKXFER(xfer); + update_detailed_info(dialog, xfer); + pixbuf = gtk_widget_render_icon(dialog->window, GAIM_STOCK_FILE_CANCELED, GTK_ICON_SIZE_MENU, NULL);