| 254 (int)(purple_xfer_get_progress(xfer)*100), |
254 (int)(purple_xfer_get_progress(xfer)*100), |
| 255 purple_xfer_get_bytes_sent(xfer), |
255 purple_xfer_get_bytes_sent(xfer), |
| 256 purple_xfer_get_size(xfer)); |
256 purple_xfer_get_size(xfer)); |
| 257 |
257 |
| 258 if (purple_xfer_is_completed(xfer)) { |
258 if (purple_xfer_is_completed(xfer)) { |
| 259 |
|
| 260 GdkPixbuf *pixbuf = NULL; |
|
| 261 |
|
| 262 pixbuf = gtk_widget_render_icon(xfer_dialog->window, |
|
| 263 PIDGIN_STOCK_FILE_DONE, |
|
| 264 GTK_ICON_SIZE_MENU, NULL); |
|
| 265 |
|
| 266 gtk_list_store_set(GTK_LIST_STORE(xfer_dialog->model), &data->iter, |
259 gtk_list_store_set(GTK_LIST_STORE(xfer_dialog->model), &data->iter, |
| 267 COLUMN_STATUS, pixbuf, |
260 COLUMN_STATUS, NULL, |
| 268 -1); |
261 -1); |
| 269 |
|
| 270 g_object_unref(pixbuf); |
|
| 271 } |
262 } |
| 272 |
263 |
| 273 if (purple_xfer_get_xfer_type(xfer) == PURPLE_XFER_TYPE_RECEIVE) { |
264 if (purple_xfer_get_xfer_type(xfer) == PURPLE_XFER_TYPE_RECEIVE) { |
| 274 gtk_label_set_markup(GTK_LABEL(dialog->local_user_desc_label), |
265 gtk_label_set_markup(GTK_LABEL(dialog->local_user_desc_label), |
| 275 _("<b>Receiving As:</b>")); |
266 _("<b>Receiving As:</b>")); |
| 592 /* Columns */ |
583 /* Columns */ |
| 593 |
584 |
| 594 /* Transfer Type column */ |
585 /* Transfer Type column */ |
| 595 renderer = gtk_cell_renderer_pixbuf_new(); |
586 renderer = gtk_cell_renderer_pixbuf_new(); |
| 596 column = gtk_tree_view_column_new_with_attributes(NULL, renderer, |
587 column = gtk_tree_view_column_new_with_attributes(NULL, renderer, |
| 597 "pixbuf", COLUMN_STATUS, NULL); |
588 "icon-name", COLUMN_STATUS, NULL); |
| 598 gtk_tree_view_column_set_sizing(GTK_TREE_VIEW_COLUMN(column), |
589 gtk_tree_view_column_set_sizing(GTK_TREE_VIEW_COLUMN(column), |
| 599 GTK_TREE_VIEW_COLUMN_FIXED); |
590 GTK_TREE_VIEW_COLUMN_FIXED); |
| 600 gtk_tree_view_column_set_fixed_width(GTK_TREE_VIEW_COLUMN(column), 25); |
591 gtk_tree_view_column_set_fixed_width(GTK_TREE_VIEW_COLUMN(column), 25); |
| 601 gtk_tree_view_column_set_resizable(GTK_TREE_VIEW_COLUMN(column), TRUE); |
592 gtk_tree_view_column_set_resizable(GTK_TREE_VIEW_COLUMN(column), TRUE); |
| 602 gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column); |
593 gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column); |
| 866 void |
857 void |
| 867 pidgin_xfer_dialog_add_xfer(PidginXferDialog *dialog, PurpleXfer *xfer) |
858 pidgin_xfer_dialog_add_xfer(PidginXferDialog *dialog, PurpleXfer *xfer) |
| 868 { |
859 { |
| 869 PidginXferUiData *data; |
860 PidginXferUiData *data; |
| 870 PurpleXferType type; |
861 PurpleXferType type; |
| 871 GdkPixbuf *pixbuf; |
862 const gchar *icon_name; |
| 872 char *size_str, *remaining_str; |
863 char *size_str, *remaining_str; |
| 873 char *lfilename, *utf8; |
864 char *lfilename, *utf8; |
| 874 |
865 |
| 875 g_return_if_fail(dialog != NULL); |
866 g_return_if_fail(dialog != NULL); |
| 876 g_return_if_fail(xfer != NULL); |
867 g_return_if_fail(xfer != NULL); |
| 887 type = purple_xfer_get_xfer_type(xfer); |
878 type = purple_xfer_get_xfer_type(xfer); |
| 888 |
879 |
| 889 size_str = purple_str_size_to_units(purple_xfer_get_size(xfer)); |
880 size_str = purple_str_size_to_units(purple_xfer_get_size(xfer)); |
| 890 remaining_str = purple_str_size_to_units(purple_xfer_get_bytes_remaining(xfer)); |
881 remaining_str = purple_str_size_to_units(purple_xfer_get_bytes_remaining(xfer)); |
| 891 |
882 |
| 892 pixbuf = gtk_widget_render_icon(dialog->window, |
883 icon_name = (type == PURPLE_XFER_TYPE_RECEIVE ? "go-down" : "go-up"); |
| 893 (type == PURPLE_XFER_TYPE_RECEIVE |
|
| 894 ? PIDGIN_STOCK_DOWNLOAD |
|
| 895 : PIDGIN_STOCK_UPLOAD), |
|
| 896 GTK_ICON_SIZE_MENU, NULL); |
|
| 897 |
884 |
| 898 gtk_list_store_append(dialog->model, &data->iter); |
885 gtk_list_store_append(dialog->model, &data->iter); |
| 899 lfilename = g_path_get_basename(purple_xfer_get_local_filename(xfer)); |
886 lfilename = g_path_get_basename(purple_xfer_get_local_filename(xfer)); |
| 900 utf8 = g_filename_to_utf8(lfilename, -1, NULL, NULL, NULL); |
887 utf8 = g_filename_to_utf8(lfilename, -1, NULL, NULL, NULL); |
| 901 g_free(lfilename); |
888 g_free(lfilename); |
| 902 lfilename = utf8; |
889 lfilename = utf8; |
| 903 gtk_list_store_set(dialog->model, &data->iter, |
890 gtk_list_store_set(dialog->model, &data->iter, |
| 904 COLUMN_STATUS, pixbuf, |
891 COLUMN_STATUS, icon_name, |
| 905 COLUMN_PROGRESS, 0, |
892 COLUMN_PROGRESS, 0, |
| 906 COLUMN_FILENAME, (type == PURPLE_XFER_TYPE_RECEIVE) |
893 COLUMN_FILENAME, (type == PURPLE_XFER_TYPE_RECEIVE) |
| 907 ? purple_xfer_get_filename(xfer) |
894 ? purple_xfer_get_filename(xfer) |
| 908 : lfilename, |
895 : lfilename, |
| 909 COLUMN_SIZE, size_str, |
896 COLUMN_SIZE, size_str, |
| 980 |
964 |
| 981 data = purple_xfer_get_ui_data(xfer); |
965 data = purple_xfer_get_ui_data(xfer); |
| 982 |
966 |
| 983 update_detailed_info(dialog, xfer); |
967 update_detailed_info(dialog, xfer); |
| 984 update_title_progress(dialog); |
968 update_title_progress(dialog); |
| 985 |
|
| 986 pixbuf = gtk_widget_render_icon(dialog->window, |
|
| 987 PIDGIN_STOCK_FILE_CANCELLED, |
|
| 988 GTK_ICON_SIZE_MENU, NULL); |
|
| 989 |
969 |
| 990 if (purple_xfer_is_cancelled(xfer)) |
970 if (purple_xfer_is_cancelled(xfer)) |
| 991 status = _("Cancelled"); |
971 status = _("Cancelled"); |
| 992 else |
972 else |
| 993 status = _("Failed"); |
973 status = _("Failed"); |
| 994 |
974 |
| 995 gtk_list_store_set(dialog->model, &data->iter, |
975 gtk_list_store_set(dialog->model, &data->iter, |
| 996 COLUMN_STATUS, pixbuf, |
976 COLUMN_STATUS, "dialog-error", |
| 997 COLUMN_REMAINING, status, |
977 COLUMN_REMAINING, status, |
| 998 -1); |
978 -1); |
| 999 |
|
| 1000 g_object_unref(pixbuf); |
|
| 1001 |
979 |
| 1002 update_buttons(dialog, xfer); |
980 update_buttons(dialog, xfer); |
| 1003 } |
981 } |
| 1004 |
982 |
| 1005 void |
983 void |
| 1042 g_free(size_str); |
1020 g_free(size_str); |
| 1043 g_free(remaining_str); |
1021 g_free(remaining_str); |
| 1044 |
1022 |
| 1045 if (purple_xfer_is_completed(xfer)) |
1023 if (purple_xfer_is_completed(xfer)) |
| 1046 { |
1024 { |
| 1047 GdkPixbuf *pixbuf; |
|
| 1048 |
|
| 1049 pixbuf = gtk_widget_render_icon(dialog->window, |
|
| 1050 PIDGIN_STOCK_FILE_DONE, |
|
| 1051 GTK_ICON_SIZE_MENU, NULL); |
|
| 1052 |
|
| 1053 gtk_list_store_set(GTK_LIST_STORE(xfer_dialog->model), &data->iter, |
1025 gtk_list_store_set(GTK_LIST_STORE(xfer_dialog->model), &data->iter, |
| 1054 COLUMN_STATUS, pixbuf, |
1026 COLUMN_STATUS, NULL, |
| 1055 COLUMN_REMAINING, _("Finished"), |
1027 COLUMN_REMAINING, _("Finished"), |
| 1056 -1); |
1028 -1); |
| 1057 |
|
| 1058 g_object_unref(pixbuf); |
|
| 1059 } |
1029 } |
| 1060 |
1030 |
| 1061 update_title_progress(dialog); |
1031 update_title_progress(dialog); |
| 1062 if (xfer == dialog->selected_xfer) |
1032 if (xfer == dialog->selected_xfer) |
| 1063 update_detailed_info(xfer_dialog, xfer); |
1033 update_detailed_info(xfer_dialog, xfer); |