static void save_options_cb (GtkWidget *w, DialogData *data) { GFile *options_dir; GFile *options_file; char *opt_filename; options_dir = get_user_config_subdirectory (ADD_FOLDER_OPTIONS_DIR, TRUE); make_directory_tree (options_dir, 0700, NULL); opt_filename = _gtk_request_dialog_run ( GTK_WINDOW (data->dialog), GTK_DIALOG_MODAL, _("Save Options"), _("_Options Name:"), (data->last_options != NULL) ? data->last_options : "", 1024, GTK_STOCK_CANCEL, GTK_STOCK_SAVE); if (opt_filename == NULL) return; options_file = g_file_get_child_for_display_name (options_dir, opt_filename, NULL); dlg_add_folder_save_current_options (data, options_file); dlg_add_folder_save_last_used_options (data, opt_filename); g_free (opt_filename); g_object_unref (options_file); g_object_unref (options_dir); }
static void aod_update_option_list (LoadOptionsDialogData *aod_data) { GtkListStore *list_store = GTK_LIST_STORE (aod_data->aod_model); GFile *options_dir; GFileEnumerator *file_enum; GFileInfo *info; GError *err = NULL; gtk_list_store_clear (list_store); options_dir = get_user_config_subdirectory (ADD_FOLDER_OPTIONS_DIR, TRUE); make_directory_tree (options_dir, 0700, NULL); file_enum = g_file_enumerate_children (options_dir, G_FILE_ATTRIBUTE_STANDARD_NAME, 0, NULL, &err); if (err != NULL) { g_warning ("Failed to enumerate children: %s", err->message); g_clear_error (&err); g_object_unref (options_dir); return; } while ((info = g_file_enumerator_next_file (file_enum, NULL, &err)) != NULL) { const char *name; char *display_name; GtkTreeIter iter; if (err != NULL) { g_warning ("Failed to get info while enumerating: %s", err->message); g_clear_error (&err); continue; } name = g_file_info_get_name (info); display_name = g_filename_display_name (name); gtk_list_store_append (GTK_LIST_STORE (aod_data->aod_model), &iter); gtk_list_store_set (GTK_LIST_STORE (aod_data->aod_model), &iter, 0, name, 1, display_name, -1); g_free (display_name); g_object_unref (info); } if (err != NULL) { g_warning ("Failed to get info after enumeration: %s", err->message); g_clear_error (&err); } g_object_unref (options_dir); }
static void migrate_options_directory (void) { char *old_directory_path; GFile *old_directory; GFile *new_directory; old_directory_path = get_home_relative_path (".gnome2/file-roller/options"); old_directory = g_file_new_for_path (old_directory_path); new_directory = get_user_config_subdirectory (ADD_FOLDER_OPTIONS_DIR, FALSE); if (g_file_query_exists (old_directory, NULL) && ! g_file_query_exists (new_directory, NULL)) { GFile *parent; parent = g_file_get_parent (new_directory); if (make_directory_tree (parent, 0700, NULL)) g_file_move (old_directory, new_directory, 0, NULL, NULL, NULL, NULL); g_object_unref (parent); } g_object_unref (new_directory); g_object_unref (old_directory); g_free (old_directory_path); }