pidgin/gtkrequest.c

changeset 33892
ef97228bc5f0
parent 33702
b5bc1f40fdee
child 33935
e740bbb8350c
equal deleted inserted replaced
33891:8b4a41b6fe60 33892:ef97228bc5f0
1647 PurpleAccount *account, const char *who, PurpleConversation *conv, 1647 PurpleAccount *account, const char *who, PurpleConversation *conv,
1648 void *user_data) 1648 void *user_data)
1649 { 1649 {
1650 PidginRequestData *data; 1650 PidginRequestData *data;
1651 GtkWidget *filesel; 1651 GtkWidget *filesel;
1652 #ifdef _WIN32
1652 const gchar *current_folder; 1653 const gchar *current_folder;
1653 gboolean folder_set = FALSE; 1654 gboolean folder_set = FALSE;
1655 #endif
1654 1656
1655 data = g_new0(PidginRequestData, 1); 1657 data = g_new0(PidginRequestData, 1);
1656 data->type = PURPLE_REQUEST_FILE; 1658 data->type = PURPLE_REQUEST_FILE;
1657 data->user_data = user_data; 1659 data->user_data = user_data;
1658 data->cb_count = 2; 1660 data->cb_count = 2;
1672 : GTK_STOCK_OPEN, 1674 : GTK_STOCK_OPEN,
1673 GTK_RESPONSE_ACCEPT, 1675 GTK_RESPONSE_ACCEPT,
1674 NULL); 1676 NULL);
1675 gtk_dialog_set_default_response(GTK_DIALOG(filesel), GTK_RESPONSE_ACCEPT); 1677 gtk_dialog_set_default_response(GTK_DIALOG(filesel), GTK_RESPONSE_ACCEPT);
1676 1678
1677 if (savedialog) {
1678 current_folder = purple_prefs_get_path(PIDGIN_PREFS_ROOT "/filelocations/last_save_folder");
1679 } else {
1680 current_folder = purple_prefs_get_path(PIDGIN_PREFS_ROOT "/filelocations/last_open_folder");
1681 }
1682
1683 if ((filename != NULL) && (*filename != '\0')) { 1679 if ((filename != NULL) && (*filename != '\0')) {
1684 if (savedialog) 1680 if (savedialog)
1685 gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(filesel), filename); 1681 gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(filesel), filename);
1686 else if (g_file_test(filename, G_FILE_TEST_EXISTS)) 1682 else if (g_file_test(filename, G_FILE_TEST_EXISTS))
1687 gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(filesel), filename); 1683 gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(filesel), filename);
1688 } 1684 }
1685
1686 #ifdef _WIN32
1687
1688 if (savedialog) {
1689 current_folder = purple_prefs_get_path(PIDGIN_PREFS_ROOT "/filelocations/last_save_folder");
1690 } else {
1691 current_folder = purple_prefs_get_path(PIDGIN_PREFS_ROOT "/filelocations/last_open_folder");
1692 }
1693
1689 if ((filename == NULL || *filename == '\0' || !g_file_test(filename, G_FILE_TEST_EXISTS)) && 1694 if ((filename == NULL || *filename == '\0' || !g_file_test(filename, G_FILE_TEST_EXISTS)) &&
1690 (current_folder != NULL) && (*current_folder != '\0')) { 1695 (current_folder != NULL) && (*current_folder != '\0')) {
1691 folder_set = gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(filesel), current_folder); 1696 folder_set = gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(filesel), current_folder);
1692 } 1697 }
1693 1698
1694 #ifdef _WIN32
1695 if (!folder_set && (filename == NULL || *filename == '\0' || !g_file_test(filename, G_FILE_TEST_EXISTS))) { 1699 if (!folder_set && (filename == NULL || *filename == '\0' || !g_file_test(filename, G_FILE_TEST_EXISTS))) {
1696 char *my_documents = wpurple_get_special_folder(CSIDL_PERSONAL); 1700 char *my_documents = wpurple_get_special_folder(CSIDL_PERSONAL);
1697 1701
1698 if (my_documents != NULL) { 1702 if (my_documents != NULL) {
1699 gtk_file_chooser_set_current_folder( 1703 gtk_file_chooser_set_current_folder(

mercurial