comparison src/gtkft.c @ 7738:b14442b31a9b

[gaim-migrate @ 8383] This patch from Tim R. (I'll remember your last name next time), snazzes up the file transfer dialog a bit. I also went in and hacked on gtkcellrenderer a bit, so that if you expand the column, the renderer will grow. committer: Tailor Script <tailor@pidgin.im>
author Sean Egan <seanegan@gmail.com>
date Thu, 04 Dec 2003 05:58:26 +0000
parents 02f697df677b
children 5f0bb52c0609
comparison
equal deleted inserted replaced
7737:c497b3bb7581 7738:b14442b31a9b
202 gtk_label_set_markup(GTK_LABEL(dialog->user_desc_label), 202 gtk_label_set_markup(GTK_LABEL(dialog->user_desc_label),
203 _("<b>Sending To:</b>")); 203 _("<b>Sending To:</b>"));
204 204
205 gtk_label_set_text(GTK_LABEL(dialog->user_label), xfer->who); 205 gtk_label_set_text(GTK_LABEL(dialog->user_label), xfer->who);
206 206
207 gtk_label_set_text(GTK_LABEL(dialog->filename_label), 207 if (gaim_xfer_get_type(xfer) == GAIM_XFER_RECEIVE) {
208 gtk_label_set_text(GTK_LABEL(dialog->filename_label),
208 gaim_xfer_get_filename(xfer)); 209 gaim_xfer_get_filename(xfer));
210 } else {
211 char *tmp;
212 tmp = g_path_get_basename(gaim_xfer_get_local_filename(xfer));
213 gtk_label_set_text(GTK_LABEL(dialog->filename_label), tmp);
214 g_free(tmp);
215 }
209 216
210 gtk_label_set_text(GTK_LABEL(dialog->status_label), status); 217 gtk_label_set_text(GTK_LABEL(dialog->status_label), status);
211 218
212 gtk_label_set_text(GTK_LABEL(dialog->speed_label), kbsec); 219 gtk_label_set_text(GTK_LABEL(dialog->speed_label), kbsec);
213 gtk_label_set_text(GTK_LABEL(dialog->time_elapsed_label), time_elapsed); 220 gtk_label_set_text(GTK_LABEL(dialog->time_elapsed_label), time_elapsed);
249 /* TODO: gtk_widget_set_sensitive(dialog->open_button, TRUE); */ 256 /* TODO: gtk_widget_set_sensitive(dialog->open_button, TRUE); */
250 gtk_widget_set_sensitive(dialog->pause_button, FALSE); 257 gtk_widget_set_sensitive(dialog->pause_button, FALSE);
251 gtk_widget_set_sensitive(dialog->resume_button, FALSE); 258 gtk_widget_set_sensitive(dialog->resume_button, FALSE);
252 259
253 gtk_widget_set_sensitive(dialog->remove_button, TRUE); 260 gtk_widget_set_sensitive(dialog->remove_button, TRUE);
254 } 261 } else if (gaim_xfer_is_canceled(xfer)) {
255 else { 262 gtk_widget_hide(dialog->stop_button);
263 gtk_widget_show(dialog->remove_button);
264
265 gtk_widget_set_sensitive(dialog->open_button, FALSE);
266 gtk_widget_set_sensitive(dialog->pause_button, FALSE);
267 gtk_widget_set_sensitive(dialog->resume_button, FALSE);
268
269 gtk_widget_set_sensitive(dialog->remove_button, TRUE);
270 } else {
256 gtk_widget_show(dialog->stop_button); 271 gtk_widget_show(dialog->stop_button);
257 gtk_widget_hide(dialog->remove_button); 272 gtk_widget_hide(dialog->remove_button);
258 273
259 gtk_widget_set_sensitive(dialog->open_button, FALSE); 274 gtk_widget_set_sensitive(dialog->open_button, FALSE);
260 275
602 G_CALLBACK(toggle_clear_finished_cb), dialog); 617 G_CALLBACK(toggle_clear_finished_cb), dialog);
603 gtk_box_pack_start(GTK_BOX(vbox2), checkbox, FALSE, FALSE, 0); 618 gtk_box_pack_start(GTK_BOX(vbox2), checkbox, FALSE, FALSE, 0);
604 gtk_widget_show(checkbox); 619 gtk_widget_show(checkbox);
605 620
606 /* "Download Details" arrow */ 621 /* "Download Details" arrow */
607 disclosure = gaim_disclosure_new(_("Show download details"), 622 disclosure = gaim_disclosure_new(_("Show transfer details"),
608 _("Hide download details")); 623 _("Hide transfer details"));
609 dialog->disclosure = disclosure; 624 dialog->disclosure = disclosure;
610 gtk_box_pack_start(GTK_BOX(vbox2), disclosure, FALSE, FALSE, 0); 625 gtk_box_pack_start(GTK_BOX(vbox2), disclosure, FALSE, FALSE, 0);
611 gtk_widget_show(disclosure); 626 gtk_widget_show(disclosure);
612 627
613 gtk_widget_set_sensitive(disclosure, FALSE); 628 gtk_widget_set_sensitive(disclosure, FALSE);
744 { 759 {
745 GaimGtkXferUiData *data; 760 GaimGtkXferUiData *data;
746 GaimXferType type; 761 GaimXferType type;
747 GdkPixbuf *pixbuf; 762 GdkPixbuf *pixbuf;
748 char *size_str, *remaining_str; 763 char *size_str, *remaining_str;
764 char *lfilename;
749 765
750 g_return_if_fail(dialog != NULL); 766 g_return_if_fail(dialog != NULL);
751 g_return_if_fail(xfer != NULL); 767 g_return_if_fail(xfer != NULL);
752 768
753 data = GAIM_GTKXFER(xfer); 769 data = GAIM_GTKXFER(xfer);
766 ? GAIM_STOCK_DOWNLOAD 782 ? GAIM_STOCK_DOWNLOAD
767 : GAIM_STOCK_UPLOAD), 783 : GAIM_STOCK_UPLOAD),
768 GTK_ICON_SIZE_MENU, NULL); 784 GTK_ICON_SIZE_MENU, NULL);
769 785
770 gtk_list_store_append(dialog->model, &data->iter); 786 gtk_list_store_append(dialog->model, &data->iter);
787 lfilename = g_path_get_basename(gaim_xfer_get_local_filename(xfer));
771 gtk_list_store_set(dialog->model, &data->iter, 788 gtk_list_store_set(dialog->model, &data->iter,
772 COLUMN_STATUS, pixbuf, 789 COLUMN_STATUS, pixbuf,
773 COLUMN_PROGRESS, 0.0, 790 COLUMN_PROGRESS, 0.0,
774 COLUMN_FILENAME, gaim_xfer_get_filename(xfer), 791 COLUMN_FILENAME, (type == GAIM_XFER_RECEIVE)
792 ? gaim_xfer_get_filename(xfer)
793 : lfilename,
775 COLUMN_SIZE, size_str, 794 COLUMN_SIZE, size_str,
776 COLUMN_REMAINING, remaining_str, 795 COLUMN_REMAINING, remaining_str,
777 COLUMN_DATA, xfer, 796 COLUMN_DATA, xfer,
778 -1); 797 -1);
798 g_free(lfilename);
779 799
780 gtk_tree_view_columns_autosize(GTK_TREE_VIEW(dialog->tree)); 800 gtk_tree_view_columns_autosize(GTK_TREE_VIEW(dialog->tree));
781 801
782 g_object_unref(pixbuf); 802 g_object_unref(pixbuf);
783 803
821 void 841 void
822 gaim_gtkxfer_dialog_cancel_xfer(GaimGtkXferDialog *dialog, 842 gaim_gtkxfer_dialog_cancel_xfer(GaimGtkXferDialog *dialog,
823 GaimXfer *xfer) 843 GaimXfer *xfer)
824 { 844 {
825 GaimGtkXferUiData *data; 845 GaimGtkXferUiData *data;
826 #if 0
827 GdkPixbuf *pixbuf; 846 GdkPixbuf *pixbuf;
828 #endif 847 gchar *status;
848
829 849
830 g_return_if_fail(dialog != NULL); 850 g_return_if_fail(dialog != NULL);
831 g_return_if_fail(xfer != NULL); 851 g_return_if_fail(xfer != NULL);
832 852
833 data = GAIM_GTKXFER(xfer); 853 data = GAIM_GTKXFER(xfer);
834 854
835 if (data == NULL) 855 if (data == NULL)
836 return; 856 return;
837 857
838 gtk_list_store_remove(GTK_LIST_STORE(dialog->model), &data->iter); 858
839 859 if ((gaim_xfer_is_canceled(xfer) == GAIM_XFER_CANCEL_LOCAL) && (dialog->auto_clear)) {
840 g_free(data->name); 860 gtk_list_store_remove(GTK_LIST_STORE(dialog->model), &data->iter);
841 g_free(data); 861
842 862 g_free(data->name);
843 xfer->ui_data = NULL; 863 g_free(data);
844 864
845 dialog->num_transfers--; 865 xfer->ui_data = NULL;
846 866
847 if (dialog->num_transfers == 0 && !dialog->keep_open) 867 dialog->num_transfers--;
848 gaim_gtkxfer_dialog_hide(dialog); 868
849 869 if (dialog->num_transfers == 0 && !dialog->keep_open)
850 #if 0 870 gaim_gtkxfer_dialog_hide(dialog);
871
872 return;
873 }
874
851 data = GAIM_GTKXFER(xfer); 875 data = GAIM_GTKXFER(xfer);
852 876
853 pixbuf = gtk_widget_render_icon(dialog->window, 877 pixbuf = gtk_widget_render_icon(dialog->window,
854 GAIM_STOCK_FILE_CANCELED, 878 GAIM_STOCK_FILE_CANCELED,
855 GTK_ICON_SIZE_MENU, NULL); 879 GTK_ICON_SIZE_MENU, NULL);
856 880
881 if (gaim_xfer_is_canceled(xfer) == GAIM_XFER_CANCEL_LOCAL)
882 status = _("Canceled");
883 else
884 status = _("Failed");
885
857 gtk_list_store_set(dialog->model, &data->iter, 886 gtk_list_store_set(dialog->model, &data->iter,
858 COLUMN_STATUS, pixbuf, 887 COLUMN_STATUS, pixbuf,
859 -1); 888 COLUMN_REMAINING, status,
889 -1);
860 890
861 g_object_unref(pixbuf); 891 g_object_unref(pixbuf);
862 #endif 892
893 update_buttons(dialog, xfer);
863 } 894 }
864 895
865 void 896 void
866 gaim_gtkxfer_dialog_update_xfer(GaimGtkXferDialog *dialog, 897 gaim_gtkxfer_dialog_update_xfer(GaimGtkXferDialog *dialog,
867 GaimXfer *xfer) 898 GaimXfer *xfer)