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 new_library_button_clicked_cb (GtkWidget *widget, DialogData *data) { char *name; GthFileData *selected_parent; GFile *parent; GthFileSource *file_source; GFile *gio_parent; GError *error = NULL; GFile *gio_file; name = _gtk_request_dialog_run (GTK_WINDOW (data->dialog), GTK_DIALOG_MODAL, _("Enter the library name: "), "", 1024, GTK_STOCK_CANCEL, _("C_reate")); if (name == NULL) return; selected_parent = gth_folder_tree_get_selected_or_parent (GTH_FOLDER_TREE (data->source_tree)); if (selected_parent != NULL) { GthFileSource *file_source; GFileInfo *info; file_source = gth_main_get_file_source (selected_parent->file); info = gth_file_source_get_file_info (file_source, selected_parent->file, GFILE_BASIC_ATTRIBUTES); if (g_file_info_get_attribute_boolean (info, "gthumb::no-child")) parent = g_file_get_parent (selected_parent->file); else parent = g_file_dup (selected_parent->file); g_object_unref (info); g_object_unref (file_source); } else parent = g_file_new_for_uri ("catalog:///"); file_source = gth_main_get_file_source (parent); gio_parent = gth_file_source_to_gio_file (file_source, parent); gio_file = _g_directory_create_unique (gio_parent, name, "", &error); if (gio_file != NULL) { GFile *file; GList *list; file = gth_catalog_file_from_gio_file (gio_file, NULL); list = g_list_prepend (NULL, file); gth_monitor_folder_changed (gth_main_get_default_monitor (), parent, list, GTH_MONITOR_EVENT_CREATED); g_list_free (list); g_object_unref (file); } else _gtk_error_dialog_from_gerror_show (GTK_WINDOW (data->dialog), _("Could not create the library"), &error); g_object_unref (gio_file); g_object_unref (gio_parent); g_object_unref (file_source); /* selected_catalog = gth_folder_tree_get_selected (GTH_FOLDER_TREE (data->source_tree)); parent = get_catalog_parent (selected_catalog->file); new_library = g_file_get_child_for_display_name (parent, name, &error); if ((new_library != NULL) && (strchr (display_name, '/') != NULL)) { error = g_error_new (G_IO_ERROR, G_IO_ERROR_INVALID_FILENAME, _("The name \"%s\" is not valid because it contains the character \"/\". " "Please use a different name."), display_name); g_object_unref (new_library); new_library = NULL; } if (error == NULL) { GFile *gio_file; gio_file = gth_file_source_to_gio_file (data->file_source, new_library); g_file_make_directory (new_library, NULL, &error); g_object_unref (gio_file); } if (error != NULL) _gtk_error_dialog_from_gerror_show (GTK_WINDOW (data->dialog), _("Could not create a new library"), &error); if (new_library != NULL) g_object_unref (new_library); g_object_unref (parent); g_object_unref (selected_catalog); g_free (name); */ }
static void new_catalog_button_clicked_cb (GtkWidget *widget, DialogData *data) { char *name; GthFileData *selected_parent; GFile *parent; GthFileSource *file_source; GFile *gio_parent; GError *error; GFile *gio_file; name = _gtk_request_dialog_run (GTK_WINDOW (data->dialog), GTK_DIALOG_MODAL, _("Enter the catalog name: "), "", 1024, GTK_STOCK_CANCEL, _("C_reate")); if (name == NULL) return; selected_parent = gth_folder_tree_get_selected_or_parent (GTH_FOLDER_TREE (data->source_tree)); if (selected_parent != NULL) { GthFileSource *file_source; GFileInfo *info; file_source = gth_main_get_file_source (selected_parent->file); info = gth_file_source_get_file_info (file_source, selected_parent->file, GFILE_BASIC_ATTRIBUTES); if (g_file_info_get_attribute_boolean (info, "gthumb::no-child")) parent = g_file_get_parent (selected_parent->file); else parent = g_file_dup (selected_parent->file); g_object_unref (info); g_object_unref (file_source); } else parent = g_file_new_for_uri ("catalog:///"); file_source = gth_main_get_file_source (parent); gio_parent = gth_file_source_to_gio_file (file_source, parent); gio_file = _g_file_create_unique (gio_parent, name, ".catalog", &error); if (gio_file != NULL) { GFile *file; GList *list; file = gth_catalog_file_from_gio_file (gio_file, NULL); list = g_list_prepend (NULL, file); gth_monitor_folder_changed (gth_main_get_default_monitor (), parent, list, GTH_MONITOR_EVENT_CREATED); g_list_free (list); g_object_unref (file); } else _gtk_error_dialog_from_gerror_show (GTK_WINDOW (data->dialog), _("Could not create the catalog"), &error); g_object_unref (gio_file); g_object_unref (gio_parent); g_object_unref (file_source); }