Mercurial > pidgin
diff src/gtkrequest.c @ 10673:179b0245a2f7
[gaim-migrate @ 12213]
This is patches 1115963 and 1115968 from rlaager, implementation of wgaim_get_special_folder() and using it to specify a sane default for the file chooser.
committer: Tailor Script <tailor@pidgin.im>
author | Daniel Atallah <daniel.atallah@gmail.com> |
---|---|
date | Tue, 08 Mar 2005 03:15:37 +0000 |
parents | aafe8f30b826 |
children | d83f745c997b |
line wrap: on
line diff
--- a/src/gtkrequest.c Tue Mar 08 02:37:07 2005 +0000 +++ b/src/gtkrequest.c Tue Mar 08 03:15:37 2005 +0000 @@ -1654,6 +1654,9 @@ GaimGtkRequestData *data; GtkWidget *filesel; const gchar *current_folder; +#if GTK_CHECK_VERSION(2,4,0) + gboolean folder_set = FALSE; +#endif data = g_new0(GaimGtkRequestData, 1); data->type = GAIM_REQUEST_FILE; @@ -1683,17 +1686,32 @@ } else { current_folder = gaim_prefs_get_string("/gaim/gtk/filelocations/last_open_folder"); } + if (filename != NULL) gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(filesel), filename); - if ((current_folder != NULL) && (*current_folder != '\0')) - gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(filesel), current_folder); + if ((current_folder != NULL) && (*current_folder != '\0')) { + folder_set = gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(filesel), current_folder); + } + +#ifdef _WIN32 + if (!folder_set) { + char *my_documents = wgaim_get_special_folder(CSIDL_PERSONAL); + if (my_documents != NULL) { + gtk_file_chooser_set_current_folder( + GTK_FILE_CHOOSER(filesel), my_documents); + + g_free(my_documents); + } + } + +#endif g_signal_connect(G_OBJECT(GTK_FILE_CHOOSER(filesel)), "response", G_CALLBACK(file_ok_check_if_exists_cb), data); #else /* FILECHOOSER */ - filesel = gtk_file_selection_new(title ? title - : (savedialog ? _("Save File...") - : _("Open File..."))); + filesel = gtk_file_selection_new( + title ? title : (savedialog ? _("Save File...") + : _("Open File..."))); if (savedialog) { current_folder = gaim_prefs_get_string("/gaim/gtk/filelocations/last_save_folder"); } else {