Mercurial > pidgin
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 } |