comparison src/gtkft.c @ 4517:a2b2cce63fb8

[gaim-migrate @ 4795] Some changes to handle unknown file sizes better. committer: Tailor Script <tailor@pidgin.im>
author Christian Hammond <chipx86@chipx86.com>
date Tue, 04 Feb 2003 17:56:17 +0000
parents 7521e29658bc
children 599d350fce4e
comparison
equal deleted inserted replaced
4516:2ad2f5caeb81 4517:a2b2cce63fb8
514 time_t elapsed; 514 time_t elapsed;
515 int secs_remaining; 515 int secs_remaining;
516 516
517 data = (struct gaim_gtkxfer_ui_data *)xfer->ui_data; 517 data = (struct gaim_gtkxfer_ui_data *)xfer->ui_data;
518 518
519 now = time(NULL); 519 if (gaim_xfer_get_size(xfer) == 0) {
520 kb_rem = gaim_xfer_get_bytes_remaining(xfer) / 1024.0;
521 kb_sent = gaim_xfer_get_bytes_sent(xfer) / 1024.0;
522 elapsed = (now - data->start_time);
523 kbps = (elapsed > 0 ? (kb_sent / elapsed) : 0);
524
525 secs_remaining = (int)(kb_rem / kbps);
526
527 if (secs_remaining <= 0) {
528 GdkPixbuf *pixbuf = NULL;
529
530 *speed_buf = '\0'; 520 *speed_buf = '\0';
531 strncpy(estimate_buf, _("Done."), sizeof(estimate_buf)); 521 strncpy(estimate_buf, _("Unknown"), sizeof(estimate_buf));
532
533 pixbuf = gtk_widget_render_icon(xfer_dialog->window,
534 GAIM_STOCK_FILE_DONE,
535 GTK_ICON_SIZE_MENU, NULL);
536
537 gtk_list_store_set(xfer_dialog->model, &data->iter,
538 COLUMN_STATUS, pixbuf,
539 -1);
540
541 g_object_unref(pixbuf);
542 } 522 }
543 else { 523 else {
544 int h = secs_remaining / 3600; 524 now = time(NULL);
545 int m = (secs_remaining % 3600) / 60; 525 kb_rem = gaim_xfer_get_bytes_remaining(xfer) / 1024.0;
546 int s = secs_remaining % 60; 526 kb_sent = gaim_xfer_get_bytes_sent(xfer) / 1024.0;
547 527 elapsed = (now - data->start_time);
548 g_snprintf(estimate_buf, sizeof(estimate_buf), 528 kbps = (elapsed > 0 ? (kb_sent / elapsed) : 0);
549 _("%d:%02d:%02d"), h, m, s); 529
550 g_snprintf(speed_buf, sizeof(speed_buf), 530 secs_remaining = (int)(kb_rem / kbps);
551 _("%.2f KB/s"), kbps); 531
532 if (secs_remaining <= 0) {
533 GdkPixbuf *pixbuf = NULL;
534
535 *speed_buf = '\0';
536 strncpy(estimate_buf, _("Done."), sizeof(estimate_buf));
537
538 pixbuf = gtk_widget_render_icon(xfer_dialog->window,
539 GAIM_STOCK_FILE_DONE,
540 GTK_ICON_SIZE_MENU, NULL);
541
542 gtk_list_store_set(xfer_dialog->model, &data->iter,
543 COLUMN_STATUS, pixbuf,
544 -1);
545
546 g_object_unref(pixbuf);
547 }
548 else {
549 int h = secs_remaining / 3600;
550 int m = (secs_remaining % 3600) / 60;
551 int s = secs_remaining % 60;
552
553 g_snprintf(estimate_buf, sizeof(estimate_buf),
554 _("%d:%02d:%02d"), h, m, s);
555 g_snprintf(speed_buf, sizeof(speed_buf),
556 _("%.2f KB/s"), kbps);
557 }
552 } 558 }
553 559
554 gtk_list_store_set(xfer_dialog->model, &data->iter, 560 gtk_list_store_set(xfer_dialog->model, &data->iter,
555 COLUMN_REMAINING, gaim_xfer_get_bytes_remaining(xfer), 561 COLUMN_REMAINING, gaim_xfer_get_bytes_remaining(xfer),
556 COLUMN_PROGRESS, percent, 562 COLUMN_PROGRESS, percent,