src/gtkft.c

changeset 9017
049f37b0ce05
parent 8585
23db71a2d432
child 9362
d4c510aea679
--- 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);

mercurial