static void copy_complete_cb (GthTask *task, GError *error, gpointer user_data) { CopyToFolderData *data = user_data; if ((error == NULL) && (data->view_destination)) gth_browser_load_location (data->browser, data->destination); g_object_unref (task); copy_to_folder_data_free (data); }
void gth_browser_activate_show_selection (GthBrowser *browser, int n_selection) { char *uri; GFile *location; uri = g_strdup_printf ("selection:///%d", n_selection); location = g_file_new_for_uri (uri); if (_g_file_equal_uris (location, gth_browser_get_location (browser))) { if (! gth_browser_restore_state (browser)) gth_browser_load_location (browser, location); } else { gth_browser_save_state (browser); gth_browser_load_location (browser, location); } g_object_unref (location); g_free (uri); }
static void open_browser_window (GFile *location, GFile *file_to_select, gboolean force_new_window) { gboolean reuse_active_window; GtkWidget *window; if (! force_new_window) { GSettings *settings; settings = g_settings_new (GTHUMB_BROWSER_SCHEMA); reuse_active_window = g_settings_get_boolean (settings, PREF_BROWSER_REUSE_ACTIVE_WINDOW); g_object_unref (settings); } else reuse_active_window = FALSE; window = NULL; if (reuse_active_window) { GList *windows = gtk_application_get_windows (Main_Application); if (windows != NULL) window = windows->data; } if (window == NULL) window = gth_browser_new (location, file_to_select); else if (file_to_select != NULL) gth_browser_go_to (GTH_BROWSER (window), location, file_to_select); else gth_browser_load_location (GTH_BROWSER (window), location); if (! StartSlideshow) gtk_window_present (GTK_WINDOW (window)); }
static void new_folder_dialog_response_cb (GtkWidget *dialog, int response_id, gpointer user_data) { NewFolderData *data = user_data; char *name; GFile *folder; GError *error = NULL; if (response_id != GTK_RESPONSE_OK) { new_folder_data_free (data); gtk_widget_destroy (dialog); return; } name = gth_request_dialog_get_normalized_text (GTH_REQUEST_DIALOG (dialog)); if (_g_utf8_all_spaces (name)) { g_free (name); gth_request_dialog_set_info_text (GTH_REQUEST_DIALOG (dialog), GTK_MESSAGE_ERROR, _("No name specified")); return; } if (g_regex_match_simple ("/", name, 0, 0)) { char *message; message = g_strdup_printf (_("Invalid name. The following characters are not allowed: %s"), "/"); gth_request_dialog_set_info_text (GTH_REQUEST_DIALOG (dialog), GTK_MESSAGE_ERROR, message); g_free (message); g_free (name); return; } folder = g_file_get_child_for_display_name (data->parent, name, &error); if ((folder != NULL) && g_file_make_directory (folder, NULL, &error)) { GList *list; GtkWidget *folder_tree; GtkTreePath *path; list = g_list_prepend (NULL, folder); gth_monitor_folder_changed (gth_main_get_default_monitor (), data->parent, list, GTH_MONITOR_EVENT_CREATED); folder_tree = gth_browser_get_folder_tree (data->browser); path = gth_folder_tree_get_path (GTH_FOLDER_TREE (folder_tree), data->parent); gth_folder_tree_expand_row (GTH_FOLDER_TREE (folder_tree), path, FALSE); gtk_tree_path_free (path); g_list_free (list); } if (error != NULL) { if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_EXISTS)) gth_request_dialog_set_info_text (GTH_REQUEST_DIALOG (dialog), GTK_MESSAGE_ERROR, _("Name already used")); else gth_request_dialog_set_info_text (GTH_REQUEST_DIALOG (dialog), GTK_MESSAGE_ERROR, error->message); g_clear_error (&error); } else { gth_browser_load_location (data->browser, folder); new_folder_data_free (data); gtk_widget_destroy (dialog); } g_object_unref (folder); }