pidgin/gtkrequest.c

branch
gtk4
changeset 41605
2e2adf4729e7
parent 41602
7a52387e60ae
child 41629
f617ffec2950
equal deleted inserted replaced
41604:ca2d6ea565a6 41605:2e2adf4729e7
2278 PurpleRequestCommonParameters *cpar, void *user_data) 2278 PurpleRequestCommonParameters *cpar, void *user_data)
2279 { 2279 {
2280 PidginRequestData *data; 2280 PidginRequestData *data;
2281 GtkFileChooserNative *filesel; 2281 GtkFileChooserNative *filesel;
2282 #ifdef _WIN32 2282 #ifdef _WIN32
2283 GFile *file = NULL;
2283 const gchar *current_folder; 2284 const gchar *current_folder;
2284 gboolean folder_set = FALSE; 2285 gboolean folder_set = FALSE;
2285 #endif 2286 #endif
2286 2287
2287 data = g_new0(PidginRequestData, 1); 2288 data = g_new0(PidginRequestData, 1);
2319 } else { 2320 } else {
2320 current_folder = purple_prefs_get_path(PIDGIN_PREFS_ROOT "/filelocations/last_open_folder"); 2321 current_folder = purple_prefs_get_path(PIDGIN_PREFS_ROOT "/filelocations/last_open_folder");
2321 } 2322 }
2322 2323
2323 if ((filename == NULL || *filename == '\0' || !g_file_test(filename, G_FILE_TEST_EXISTS)) && 2324 if ((filename == NULL || *filename == '\0' || !g_file_test(filename, G_FILE_TEST_EXISTS)) &&
2324 (current_folder != NULL) && (*current_folder != '\0')) { 2325 (current_folder != NULL) && (*current_folder != '\0'))
2325 folder_set = gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(filesel), current_folder); 2326 {
2327 file = g_file_new_for_path(current_folder);
2328 folder_set = gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(filesel), file, NULL);
2326 } 2329 }
2327 2330
2328 if (!folder_set && (filename == NULL || *filename == '\0' || !g_file_test(filename, G_FILE_TEST_EXISTS))) { 2331 if (!folder_set && (filename == NULL || *filename == '\0' || !g_file_test(filename, G_FILE_TEST_EXISTS))) {
2329 char *my_documents = wpurple_get_special_folder(CSIDL_PERSONAL); 2332 char *my_documents = wpurple_get_special_folder(CSIDL_PERSONAL);
2330 2333
2334 g_clear_object(&file);
2335
2331 if (my_documents != NULL) { 2336 if (my_documents != NULL) {
2337 file = g_file_new_for_path(my_documents);
2332 gtk_file_chooser_set_current_folder( 2338 gtk_file_chooser_set_current_folder(
2333 GTK_FILE_CHOOSER(filesel), my_documents); 2339 GTK_FILE_CHOOSER(filesel), file, NULL);
2334 2340
2335 g_free(my_documents); 2341 g_free(my_documents);
2336 } 2342 }
2337 } 2343 }
2344
2345 g_clear_object(&file);
2338 #endif 2346 #endif
2339 2347
2340 g_signal_connect(G_OBJECT(GTK_FILE_CHOOSER(filesel)), "response", 2348 g_signal_connect(G_OBJECT(GTK_FILE_CHOOSER(filesel)), "response",
2341 G_CALLBACK(file_ok_check_if_exists_cb), data); 2349 G_CALLBACK(file_ok_check_if_exists_cb), data);
2342 2350

mercurial