src/gtkft.c

changeset 9017
049f37b0ce05
parent 8585
23db71a2d432
child 9362
d4c510aea679
equal deleted inserted replaced
9016:69f5ff966dc7 9017:049f37b0ce05
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)

mercurial