comparison 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
comparison
equal deleted inserted replaced
10672:0925c898b73c 10673:179b0245a2f7
1652 void *user_data) 1652 void *user_data)
1653 { 1653 {
1654 GaimGtkRequestData *data; 1654 GaimGtkRequestData *data;
1655 GtkWidget *filesel; 1655 GtkWidget *filesel;
1656 const gchar *current_folder; 1656 const gchar *current_folder;
1657 #if GTK_CHECK_VERSION(2,4,0)
1658 gboolean folder_set = FALSE;
1659 #endif
1657 1660
1658 data = g_new0(GaimGtkRequestData, 1); 1661 data = g_new0(GaimGtkRequestData, 1);
1659 data->type = GAIM_REQUEST_FILE; 1662 data->type = GAIM_REQUEST_FILE;
1660 data->user_data = user_data; 1663 data->user_data = user_data;
1661 data->cb_count = 2; 1664 data->cb_count = 2;
1681 if (savedialog) { 1684 if (savedialog) {
1682 current_folder = gaim_prefs_get_string("/gaim/gtk/filelocations/last_save_folder"); 1685 current_folder = gaim_prefs_get_string("/gaim/gtk/filelocations/last_save_folder");
1683 } else { 1686 } else {
1684 current_folder = gaim_prefs_get_string("/gaim/gtk/filelocations/last_open_folder"); 1687 current_folder = gaim_prefs_get_string("/gaim/gtk/filelocations/last_open_folder");
1685 } 1688 }
1689
1686 if (filename != NULL) 1690 if (filename != NULL)
1687 gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(filesel), filename); 1691 gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(filesel), filename);
1688 if ((current_folder != NULL) && (*current_folder != '\0')) 1692 if ((current_folder != NULL) && (*current_folder != '\0')) {
1689 gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(filesel), current_folder); 1693 folder_set = gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(filesel), current_folder);
1690 1694 }
1695
1696 #ifdef _WIN32
1697 if (!folder_set) {
1698 char *my_documents = wgaim_get_special_folder(CSIDL_PERSONAL);
1699
1700 if (my_documents != NULL) {
1701 gtk_file_chooser_set_current_folder(
1702 GTK_FILE_CHOOSER(filesel), my_documents);
1703
1704 g_free(my_documents);
1705 }
1706 }
1707
1708 #endif
1691 g_signal_connect(G_OBJECT(GTK_FILE_CHOOSER(filesel)), "response", 1709 g_signal_connect(G_OBJECT(GTK_FILE_CHOOSER(filesel)), "response",
1692 G_CALLBACK(file_ok_check_if_exists_cb), data); 1710 G_CALLBACK(file_ok_check_if_exists_cb), data);
1693 #else /* FILECHOOSER */ 1711 #else /* FILECHOOSER */
1694 filesel = gtk_file_selection_new(title ? title 1712 filesel = gtk_file_selection_new(
1695 : (savedialog ? _("Save File...") 1713 title ? title : (savedialog ? _("Save File...")
1696 : _("Open File..."))); 1714 : _("Open File...")));
1697 if (savedialog) { 1715 if (savedialog) {
1698 current_folder = gaim_prefs_get_string("/gaim/gtk/filelocations/last_save_folder"); 1716 current_folder = gaim_prefs_get_string("/gaim/gtk/filelocations/last_save_folder");
1699 } else { 1717 } else {
1700 current_folder = gaim_prefs_get_string("/gaim/gtk/filelocations/last_open_folder"); 1718 current_folder = gaim_prefs_get_string("/gaim/gtk/filelocations/last_open_folder");
1701 } 1719 }