Mercurial > pidgin.yaz
comparison src/gtkft.c @ 10919:9695281b1aa1
[gaim-migrate @ 12683]
Better handling of filenames in file transfers when using a non-UTF8
filename encoding on the filesyste. This should fix a number of bugs.
committer: Tailor Script <tailor@pidgin.im>
author | Stu Tomlinson <stu@nosnilmot.com> |
---|---|
date | Sun, 15 May 2005 18:16:20 +0000 |
parents | 1012f463d2b9 |
children | accfd1f1f80d |
comparison
equal
deleted
inserted
replaced
10918:893921a6cc6e | 10919:9695281b1aa1 |
---|---|
185 static void | 185 static void |
186 update_detailed_info(GaimGtkXferDialog *dialog, GaimXfer *xfer) | 186 update_detailed_info(GaimGtkXferDialog *dialog, GaimXfer *xfer) |
187 { | 187 { |
188 GaimGtkXferUiData *data; | 188 GaimGtkXferUiData *data; |
189 char *kbsec, *time_elapsed, *time_remaining; | 189 char *kbsec, *time_elapsed, *time_remaining; |
190 char *status; | 190 char *status, *utf8; |
191 | 191 |
192 if (dialog == NULL || xfer == NULL) | 192 if (dialog == NULL || xfer == NULL) |
193 return; | 193 return; |
194 | 194 |
195 data = GAIM_GTKXFER(xfer); | 195 data = GAIM_GTKXFER(xfer); |
238 if (gaim_xfer_get_type(xfer) == GAIM_XFER_RECEIVE) { | 238 if (gaim_xfer_get_type(xfer) == GAIM_XFER_RECEIVE) { |
239 gtk_label_set_text(GTK_LABEL(dialog->filename_label), | 239 gtk_label_set_text(GTK_LABEL(dialog->filename_label), |
240 gaim_xfer_get_filename(xfer)); | 240 gaim_xfer_get_filename(xfer)); |
241 } else { | 241 } else { |
242 char *tmp; | 242 char *tmp; |
243 | |
243 tmp = g_path_get_basename(gaim_xfer_get_local_filename(xfer)); | 244 tmp = g_path_get_basename(gaim_xfer_get_local_filename(xfer)); |
244 gtk_label_set_text(GTK_LABEL(dialog->filename_label), tmp); | 245 utf8 = g_filename_to_utf8(tmp, -1, NULL, NULL, NULL); |
245 g_free(tmp); | 246 g_free(tmp); |
246 } | 247 |
247 | 248 gtk_label_set_text(GTK_LABEL(dialog->filename_label), utf8); |
248 gtk_label_set_text(GTK_LABEL(dialog->localfile_label), | 249 g_free(utf8); |
249 gaim_xfer_get_local_filename(xfer)); | 250 } |
251 | |
252 utf8 = g_filename_to_utf8((gaim_xfer_get_local_filename(xfer)), -1, NULL, NULL, NULL); | |
253 gtk_label_set_text(GTK_LABEL(dialog->localfile_label), utf8); | |
254 g_free(utf8); | |
250 | 255 |
251 gtk_label_set_text(GTK_LABEL(dialog->status_label), status); | 256 gtk_label_set_text(GTK_LABEL(dialog->status_label), status); |
252 | 257 |
253 gtk_label_set_text(GTK_LABEL(dialog->speed_label), kbsec); | 258 gtk_label_set_text(GTK_LABEL(dialog->speed_label), kbsec); |
254 gtk_label_set_text(GTK_LABEL(dialog->time_elapsed_label), time_elapsed); | 259 gtk_label_set_text(GTK_LABEL(dialog->time_elapsed_label), time_elapsed); |
801 { | 806 { |
802 GaimGtkXferUiData *data; | 807 GaimGtkXferUiData *data; |
803 GaimXferType type; | 808 GaimXferType type; |
804 GdkPixbuf *pixbuf; | 809 GdkPixbuf *pixbuf; |
805 char *size_str, *remaining_str; | 810 char *size_str, *remaining_str; |
806 char *lfilename; | 811 char *lfilename, *utf8; |
807 | 812 |
808 g_return_if_fail(dialog != NULL); | 813 g_return_if_fail(dialog != NULL); |
809 g_return_if_fail(xfer != NULL); | 814 g_return_if_fail(xfer != NULL); |
810 | 815 |
811 gaim_xfer_ref(xfer); | 816 gaim_xfer_ref(xfer); |
829 : GAIM_STOCK_UPLOAD), | 834 : GAIM_STOCK_UPLOAD), |
830 GTK_ICON_SIZE_MENU, NULL); | 835 GTK_ICON_SIZE_MENU, NULL); |
831 | 836 |
832 gtk_list_store_append(dialog->model, &data->iter); | 837 gtk_list_store_append(dialog->model, &data->iter); |
833 lfilename = g_path_get_basename(gaim_xfer_get_local_filename(xfer)); | 838 lfilename = g_path_get_basename(gaim_xfer_get_local_filename(xfer)); |
839 utf8 = g_filename_to_utf8(lfilename, -1, NULL, NULL, NULL); | |
840 g_free(lfilename); | |
841 lfilename = utf8; | |
834 gtk_list_store_set(dialog->model, &data->iter, | 842 gtk_list_store_set(dialog->model, &data->iter, |
835 COLUMN_STATUS, pixbuf, | 843 COLUMN_STATUS, pixbuf, |
836 COLUMN_PROGRESS, 0.0, | 844 COLUMN_PROGRESS, 0.0, |
837 COLUMN_FILENAME, (type == GAIM_XFER_RECEIVE) | 845 COLUMN_FILENAME, (type == GAIM_XFER_RECEIVE) |
838 ? gaim_xfer_get_filename(xfer) | 846 ? gaim_xfer_get_filename(xfer) |