Mercurial > pidgin.yaz
comparison src/gtkft.c @ 9017:8db7732df1fd
[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 <tailor@pidgin.im>
author | Luke Schierer <lschiere@pidgin.im> |
---|---|
date | Sat, 22 May 2004 19:55:39 +0000 |
parents | e4087b5c0627 |
children | 72c88ac84afa |
comparison
equal
deleted
inserted
replaced
9016:53c1e635f11d | 9017:8db7732df1fd |
---|---|
80 typedef struct | 80 typedef struct |
81 { | 81 { |
82 GtkWidget *filesel; | 82 GtkWidget *filesel; |
83 GtkTreeIter iter; | 83 GtkTreeIter iter; |
84 time_t start_time; | 84 time_t start_time; |
85 time_t end_time; | |
85 gboolean in_list; | 86 gboolean in_list; |
86 | 87 |
87 char *name; | 88 char *name; |
88 | 89 |
89 } GaimGtkXferUiData; | 90 } GaimGtkXferUiData; |
119 double kbps = 0.0; | 120 double kbps = 0.0; |
120 time_t elapsed, now; | 121 time_t elapsed, now; |
121 | 122 |
122 data = GAIM_GTKXFER(xfer); | 123 data = GAIM_GTKXFER(xfer); |
123 | 124 |
124 now = time(NULL); | 125 if (data->end_time == -1 && |
126 (gaim_xfer_is_canceled(xfer) || gaim_xfer_is_completed(xfer))) | |
127 data->end_time = time(NULL); | |
128 | |
129 if (data->end_time != -1) | |
130 now = data->end_time; | |
131 else | |
132 now = time(NULL); | |
125 | 133 |
126 kb_sent = gaim_xfer_get_bytes_sent(xfer) / 1024.0; | 134 kb_sent = gaim_xfer_get_bytes_sent(xfer) / 1024.0; |
127 kb_rem = gaim_xfer_get_bytes_remaining(xfer) / 1024.0; | 135 kb_rem = gaim_xfer_get_bytes_remaining(xfer) / 1024.0; |
128 elapsed = (now - data->start_time); | 136 elapsed = (now - data->start_time); |
129 kbps = (elapsed > 0 ? (kb_sent / elapsed) : 0); | 137 kbps = (elapsed > 0 ? (kb_sent / elapsed) : 0); |
152 if (gaim_xfer_get_size(xfer) == 0) { | 160 if (gaim_xfer_get_size(xfer) == 0) { |
153 *time_remaining = g_strdup(_("Unknown")); | 161 *time_remaining = g_strdup(_("Unknown")); |
154 } | 162 } |
155 else if (gaim_xfer_is_completed(xfer)) { | 163 else if (gaim_xfer_is_completed(xfer)) { |
156 *time_remaining = g_strdup(_("Finished")); | 164 *time_remaining = g_strdup(_("Finished")); |
165 } | |
166 else if (gaim_xfer_is_canceled(xfer)) { | |
167 *time_remaining = g_strdup(_("Canceled")); | |
168 } | |
169 else if (kb_sent <= 0) { | |
170 *time_remaining = g_strdup(_("Waiting for transfer to begin")); | |
157 } | 171 } |
158 else { | 172 else { |
159 int h, m, s; | 173 int h, m, s; |
160 int secs_remaining; | 174 int secs_remaining; |
161 | 175 |
803 data->in_list = TRUE; | 817 data->in_list = TRUE; |
804 | 818 |
805 gaim_gtkxfer_dialog_show(dialog); | 819 gaim_gtkxfer_dialog_show(dialog); |
806 | 820 |
807 data->start_time = time(NULL); | 821 data->start_time = time(NULL); |
822 data->end_time = -1; | |
808 | 823 |
809 type = gaim_xfer_get_type(xfer); | 824 type = gaim_xfer_get_type(xfer); |
810 | 825 |
811 size_str = gaim_str_size_to_units(gaim_xfer_get_size(xfer)); | 826 size_str = gaim_str_size_to_units(gaim_xfer_get_size(xfer)); |
812 remaining_str = gaim_str_size_to_units(gaim_xfer_get_bytes_remaining(xfer)); | 827 remaining_str = gaim_str_size_to_units(gaim_xfer_get_bytes_remaining(xfer)); |
898 return; | 913 return; |
899 } | 914 } |
900 | 915 |
901 data = GAIM_GTKXFER(xfer); | 916 data = GAIM_GTKXFER(xfer); |
902 | 917 |
918 update_detailed_info(dialog, xfer); | |
919 | |
903 pixbuf = gtk_widget_render_icon(dialog->window, | 920 pixbuf = gtk_widget_render_icon(dialog->window, |
904 GAIM_STOCK_FILE_CANCELED, | 921 GAIM_STOCK_FILE_CANCELED, |
905 GTK_ICON_SIZE_MENU, NULL); | 922 GTK_ICON_SIZE_MENU, NULL); |
906 | 923 |
907 if (gaim_xfer_get_status(xfer) == GAIM_XFER_STATUS_CANCEL_LOCAL) | 924 if (gaim_xfer_get_status(xfer) == GAIM_XFER_STATUS_CANCEL_LOCAL) |