# HG changeset patch # User Luke Schierer # Date 1085255739 0 # Node ID 8db7732df1fdb935313c955d30173d75b01b8bc6 # Parent 53c1e635f11d4d21a6b0f300a535cd297006be68 [gaim-migrate @ 9793] (15:53:18) SimGuy: it makes the elapsed time stop counting after the transfer ends, makes the transfer update when it is canceled so the detail view reflects that, and prevents gaim from showing odd negative times remaining if the transfer hasn't started yet committer: Tailor Script diff -r 53c1e635f11d -r 8db7732df1fd src/gtkft.c --- 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);