pidgin/gtkxfer.c

changeset 39150
dcbc4df3018f
parent 38585
af0e7bb2d9de
child 39466
43e2de46c7d5
equal deleted inserted replaced
39135:035721876d0f 39150:dcbc4df3018f
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,
912 -1); 899 -1);
913 g_free(lfilename); 900 g_free(lfilename);
914 901
915 gtk_tree_view_columns_autosize(GTK_TREE_VIEW(dialog->tree)); 902 gtk_tree_view_columns_autosize(GTK_TREE_VIEW(dialog->tree));
916 903
917 g_object_unref(pixbuf);
918
919 g_free(size_str); 904 g_free(size_str);
920 g_free(remaining_str); 905 g_free(remaining_str);
921 906
922 dialog->num_transfers++; 907 dialog->num_transfers++;
923 908
957 void 942 void
958 pidgin_xfer_dialog_cancel_xfer(PidginXferDialog *dialog, 943 pidgin_xfer_dialog_cancel_xfer(PidginXferDialog *dialog,
959 PurpleXfer *xfer) 944 PurpleXfer *xfer)
960 { 945 {
961 PidginXferUiData *data; 946 PidginXferUiData *data;
962 GdkPixbuf *pixbuf;
963 const gchar *status; 947 const gchar *status;
964 948
965 g_return_if_fail(dialog != NULL); 949 g_return_if_fail(dialog != NULL);
966 g_return_if_fail(xfer != NULL); 950 g_return_if_fail(xfer != NULL);
967 951
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);

mercurial