pidgin/gtkrequest.c

changeset 39928
0c5e17e46226
parent 39793
2a29bc06910b
child 39930
411f3df51bcd
equal deleted inserted replaced
39866:807fde3a9079 39928:0c5e17e46226
2345 2345
2346 return data; 2346 return data;
2347 } 2347 }
2348 2348
2349 static void 2349 static void
2350 file_yes_no_cb(PidginRequestData *data, gint id)
2351 {
2352 /* Only call the callback if yes was selected, otherwise the request
2353 * (eg. file transfer) will be cancelled, then when a new filename is chosen
2354 * things go BOOM */
2355 if (id == 1) {
2356 if (data->cbs[1] != NULL)
2357 ((PurpleRequestFileCb)data->cbs[1])(data->user_data, data->u.file.name);
2358 purple_request_close(data->type, data);
2359 } else {
2360 pidgin_clear_cursor(GTK_WIDGET(data->dialog));
2361 }
2362 }
2363
2364 static void
2365 file_ok_check_if_exists_cb(GtkWidget *widget, gint response, PidginRequestData *data) 2350 file_ok_check_if_exists_cb(GtkWidget *widget, gint response, PidginRequestData *data)
2366 { 2351 {
2367 gchar *current_folder; 2352 gchar *current_folder;
2368 2353
2369 generic_response_start(data); 2354 generic_response_start(data);
2383 } else { 2368 } else {
2384 purple_prefs_set_path(PIDGIN_PREFS_ROOT "/filelocations/last_open_folder", current_folder); 2369 purple_prefs_set_path(PIDGIN_PREFS_ROOT "/filelocations/last_open_folder", current_folder);
2385 } 2370 }
2386 g_free(current_folder); 2371 g_free(current_folder);
2387 } 2372 }
2388 if ((data->u.file.savedialog == TRUE) && 2373 if (data->cbs[1] != NULL) {
2389 (g_file_test(data->u.file.name, G_FILE_TEST_EXISTS))) { 2374 ((PurpleRequestFileCb)data->cbs[1])(data->user_data, data->u.file.name);
2390 purple_request_action(data, NULL, _("That file already exists"), 2375 }
2391 _("Would you like to overwrite it?"), 0, 2376 purple_request_close(data->type, data);
2392 NULL,
2393 data, 2,
2394 _("Overwrite"), G_CALLBACK(file_yes_no_cb),
2395 _("Choose New Name"), G_CALLBACK(file_yes_no_cb));
2396 } else
2397 file_yes_no_cb(data, 1);
2398 } 2377 }
2399 2378
2400 static void * 2379 static void *
2401 pidgin_request_file(const char *title, const char *filename, 2380 pidgin_request_file(const char *title, const char *filename,
2402 gboolean savedialog, GCallback ok_cb, GCallback cancel_cb, 2381 gboolean savedialog, GCallback ok_cb, GCallback cancel_cb,
2428 savedialog ? _("_Save") 2407 savedialog ? _("_Save")
2429 : _("_Open"), 2408 : _("_Open"),
2430 GTK_RESPONSE_ACCEPT, 2409 GTK_RESPONSE_ACCEPT,
2431 NULL); 2410 NULL);
2432 gtk_dialog_set_default_response(GTK_DIALOG(filesel), GTK_RESPONSE_ACCEPT); 2411 gtk_dialog_set_default_response(GTK_DIALOG(filesel), GTK_RESPONSE_ACCEPT);
2412 gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER(filesel),
2413 TRUE);
2433 2414
2434 pidgin_request_add_help(GTK_DIALOG(filesel), cpar); 2415 pidgin_request_add_help(GTK_DIALOG(filesel), cpar);
2435 2416
2436 if ((filename != NULL) && (*filename != '\0')) { 2417 if ((filename != NULL) && (*filename != '\0')) {
2437 if (savedialog) 2418 if (savedialog)

mercurial