Mercurial > pidgin
diff src/gtkft.c @ 13598:41e40b323dc3
[gaim-migrate @ 15984]
Previously our file transfer dialog showed "time elapsed" as the current
time minus the time when the transfer was added to the ft dialog.
When sending a file, the transfer is added when you offer the file to
the remote user, not when the transfer actually starts. This meant the
"time elapsed" was longer than it should have been, which threw off the
transfer rate.
This should fix that.
committer: Tailor Script <tailor@pidgin.im>
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Sun, 09 Apr 2006 17:38:38 +0000 |
parents | a0a4b44239e8 |
children | 3ac2d64a74a0 |
line wrap: on
line diff
--- a/src/gtkft.c Sun Apr 09 17:33:25 2006 +0000 +++ b/src/gtkft.c Sun Apr 09 17:38:38 2006 +0000 @@ -84,9 +84,7 @@ typedef struct { GtkTreeIter iter; - time_t start_time; time_t last_updated_time; - time_t end_time; gboolean in_list; char *name; @@ -121,35 +119,39 @@ data = GAIM_GTKXFER(xfer); - 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; + if (xfer->end_time != 0) + now = xfer->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; - elapsed = (now - data->start_time); + elapsed = (xfer->start_time > 0 ? now - xfer->start_time : 0); kbps = (elapsed > 0 ? (kb_sent / elapsed) : 0); if (kbsec != NULL) { *kbsec = g_strdup_printf(_("%.2f KB/s"), kbps); } - if (time_elapsed != NULL) { + if (time_elapsed != NULL) + { int h, m, s; int secs_elapsed; - secs_elapsed = now - data->start_time; + if (xfer->start_time > 0) + { + secs_elapsed = now - xfer->start_time; - h = secs_elapsed / 3600; - m = (secs_elapsed % 3600) / 60; - s = secs_elapsed % 60; + h = secs_elapsed / 3600; + m = (secs_elapsed % 3600) / 60; + s = secs_elapsed % 60; - *time_elapsed = g_strdup_printf("%d:%02d:%02d", h, m, s); + *time_elapsed = g_strdup_printf("%d:%02d:%02d", h, m, s); + } + else + { + *time_elapsed = g_strdup(_("Not started")); + } } if (time_remaining != NULL) { @@ -227,10 +229,10 @@ _("<b>Sending As:</b>")); } - gtk_label_set_text(GTK_LABEL(dialog->local_user_label), + gtk_label_set_text(GTK_LABEL(dialog->local_user_label), gaim_account_get_username(xfer->account)); gtk_label_set_text(GTK_LABEL(dialog->remote_user_label), xfer->who); - gtk_label_set_text(GTK_LABEL(dialog->protocol_label), + gtk_label_set_text(GTK_LABEL(dialog->protocol_label), gaim_account_get_protocol_name(xfer->account)); if (gaim_xfer_get_type(xfer) == GAIM_XFER_RECEIVE) { @@ -892,9 +894,7 @@ gaim_gtkxfer_dialog_show(dialog); - data->start_time = time(NULL); data->last_updated_time = 0; - data->end_time = -1; type = gaim_xfer_get_type(xfer);