static void purple_keyring_drop_passwords(PurpleKeyring *keyring, PurpleKeyringDropCallback cb, gpointer data) { GList *it; PurpleKeyringSave save_cb; PurpleKeyringDropTracker *tracker; g_return_if_fail(keyring != NULL); save_cb = purple_keyring_get_save_password(keyring); g_assert(save_cb != NULL); tracker = g_new0(PurpleKeyringDropTracker, 1); tracker->cb = cb; tracker->cb_data = data; for (it = purple_accounts_get_all(); it != NULL; it = it->next) { PurpleAccount *account = it->data; tracker->drop_outstanding++; if (it->next == NULL) tracker->finished = TRUE; save_cb(account, NULL, purple_keyring_drop_passwords_save_cb, tracker); } }
static void purple_keyring_set_inuse_read_cb(PurpleAccount *account, const gchar *password, GError *error, gpointer _tracker) { PurpleKeyringChangeTracker *tracker = _tracker; PurpleKeyringSave save_cb; g_return_if_fail(account != NULL); g_return_if_fail(tracker != NULL); if (tracker->abort) { purple_keyring_set_inuse_save_cb(account, NULL, tracker); return; } if (error != NULL) { if (tracker->force == TRUE || g_error_matches(error, PURPLE_KEYRING_ERROR, PURPLE_KEYRING_ERROR_NOPASSWORD)) { /* Don't save password, and ignore it. */ } else { tracker->abort = TRUE; } purple_keyring_set_inuse_save_cb(account, error, tracker); return; } save_cb = purple_keyring_get_save_password(tracker->new_kr); g_assert(save_cb != NULL); save_cb(account, password, purple_keyring_set_inuse_save_cb, tracker); }
int check_save(void) { if (!changed) return 1; int r = fltk::choice("The current file has not been saved.\n" "Would you like to save it now?", "Cancel", "Save", "Don't Save"); if (r == 1) { save_cb(); // Save the file... return !changed; } return (r == 2) ? 1 : 0; }
void save_cb(GtkButton* button, gpointer user_data) { /* Load save dialog */ int response = gtk_dialog_run(GTK_DIALOG(save_dialog)); if(response != 0) { gtk_widget_hide(GTK_WIDGET(save_dialog)); return; } /* Get filename */ char* filename; filename = gtk_file_chooser_get_filename(save_dialog); /* Check is not empty */ DEBUG("Selected file: %s\n", filename); if((filename == NULL) || is_empty_string(filename)) { show_error(window, "Please select a file."); g_free(filename); save_cb(button, user_data); return; } gtk_widget_hide(GTK_WIDGET(save_dialog)); /* Check extension */ if(!g_str_has_suffix(filename, ".bip")) { char* new_filename = g_strdup_printf("%s.bip", filename); g_free(filename); filename = new_filename; } /* Try to open file for writing */ FILE* file = fopen(filename, "w"); if(file == NULL) { show_error(window, "An error ocurred while trying to open " "the file. Check you have permissions."); g_free(filename); return; } /* Save current context */ DEBUG("Saving to file %s\n", filename); save(file); /* Free resources */ fclose(file); g_free(filename); }
static void gdict_applet_cmd_save (GtkAction *action, GdictApplet *applet) { save_cb (NULL, applet); }
static void exit_cb(void) { save_cb(); }