comparison src/gtkrequest.c @ 10536:c047cf7e18ba

[gaim-migrate @ 11888] Patch from Lee Roach to remember the directory to which we last saved a file transfer. committer: Tailor Script <tailor@pidgin.im>
author Sean Egan <seanegan@gmail.com>
date Sat, 22 Jan 2005 05:22:48 +0000
parents bed2c96bc1fb
children 56d4460bb6bd
comparison
equal deleted inserted replaced
10535:f175ff63d571 10536:c047cf7e18ba
1453 1453
1454 #if GTK_CHECK_VERSION(2,4,0) /* FILECHOOSER */ 1454 #if GTK_CHECK_VERSION(2,4,0) /* FILECHOOSER */
1455 static void 1455 static void
1456 file_ok_check_if_exists_cb(GtkWidget *widget, gint response, GaimGtkRequestData *data) 1456 file_ok_check_if_exists_cb(GtkWidget *widget, gint response, GaimGtkRequestData *data)
1457 { 1457 {
1458 gchar *current_folder;
1459
1458 if (response != GTK_RESPONSE_ACCEPT) { 1460 if (response != GTK_RESPONSE_ACCEPT) {
1459 if (data->cbs[0] != NULL) 1461 if (data->cbs[0] != NULL)
1460 ((GaimRequestFileCb)data->cbs[0])(data->user_data, NULL); 1462 ((GaimRequestFileCb)data->cbs[0])(data->user_data, NULL);
1461 gaim_request_close(GAIM_REQUEST_FILE, data); 1463 gaim_request_close(GAIM_REQUEST_FILE, data);
1462 return; 1464 return;
1463 } 1465 }
1464 1466
1465 data->u.file.name = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(data->dialog)); 1467 data->u.file.name = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(data->dialog));
1468 if (data->u.file.savedialog) {
1469 current_folder = gtk_file_chooser_get_current_folder(GTK_FILE_CHOOSER(data->dialog));
1470 if (current_folder) {
1471 gaim_prefs_set_string("/gaim/gtk/filetransfer/last_folder", current_folder);
1472 g_free(current_folder);
1473 }
1474 }
1466 #else /* FILECHOOSER */ 1475 #else /* FILECHOOSER */
1467 static void 1476 static void
1468 file_ok_check_if_exists_cb(GtkWidget *button, GaimGtkRequestData *data) 1477 file_ok_check_if_exists_cb(GtkWidget *button, GaimGtkRequestData *data)
1469 { 1478 {
1470 const gchar *name; 1479 const gchar *name;
1529 : GTK_STOCK_OPEN, 1538 : GTK_STOCK_OPEN,
1530 GTK_RESPONSE_ACCEPT, 1539 GTK_RESPONSE_ACCEPT,
1531 NULL); 1540 NULL);
1532 gtk_dialog_set_default_response(GTK_DIALOG(filesel), GTK_RESPONSE_ACCEPT); 1541 gtk_dialog_set_default_response(GTK_DIALOG(filesel), GTK_RESPONSE_ACCEPT);
1533 if (filename != NULL) { 1542 if (filename != NULL) {
1534 if (savedialog) 1543 if (savedialog) {
1544 const gchar *current_folder = gaim_prefs_get_string("/gaim/gtk/filetransfer/last_folder");
1535 gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(filesel), filename); 1545 gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(filesel), filename);
1536 else 1546 if (current_folder) {
1547 gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(filesel), current_folder);
1548 }
1549 } else
1537 gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(filesel), filename); 1550 gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(filesel), filename);
1538 } 1551 }
1539 g_signal_connect(G_OBJECT(GTK_FILE_CHOOSER(filesel)), "response", 1552 g_signal_connect(G_OBJECT(GTK_FILE_CHOOSER(filesel)), "response",
1540 G_CALLBACK(file_ok_check_if_exists_cb), data); 1553 G_CALLBACK(file_ok_check_if_exists_cb), data);
1541 #else /* FILECHOOSER */ 1554 #else /* FILECHOOSER */