void fm_rename_file (NautilusFile *file, const char *new_name, NautilusFileOperationCallback callback, gpointer callback_data) { char *old_name, *wait_message; FMRenameData *data; char *uri; GError *error; g_return_if_fail (NAUTILUS_IS_FILE (file)); g_return_if_fail (new_name != NULL); /* Stop any earlier rename that's already in progress. */ error = g_error_new (G_IO_ERROR, G_IO_ERROR_CANCELLED, "Cancelled"); finish_rename (file, TRUE, error); g_error_free (error); data = g_new0 (FMRenameData, 1); data->name = g_strdup (new_name); data->callback = callback; data->callback_data = callback_data; /* Attach the new name to the file. */ g_object_set_data_full (G_OBJECT (file), NEW_NAME_TAG, data, (GDestroyNotify)fm_rename_data_free); /* Start the timed wait to cancel the rename. */ old_name = nautilus_file_get_display_name (file); wait_message = g_strdup_printf (_("Renaming \"%s\" to \"%s\"."), old_name, new_name); g_free (old_name); eel_timed_wait_start (cancel_rename_callback, file, wait_message, NULL); /* FIXME bugzilla.gnome.org 42395: Parent this? */ g_free (wait_message); uri = nautilus_file_get_uri (file); nautilus_debug_log (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_USER, "rename file old=\"%s\", new=\"%s\"", uri, new_name); g_free (uri); /* Start the rename. */ nautilus_file_rename (file, new_name, rename_callback, NULL); }
void nautilus_rename_file (NautilusFile *file, const char *new_name, NautilusFileOperationCallback callback, gpointer callback_data) { g_autoptr (GError) error = NULL; NautilusRenameData *data; g_autofree char *truncated_old_name = NULL; g_autofree char *truncated_new_name = NULL; g_autofree char *wait_message = NULL; g_autofree char *uri = NULL; g_return_if_fail (NAUTILUS_IS_FILE (file)); g_return_if_fail (new_name != NULL); /* Stop any earlier rename that's already in progress. */ error = g_error_new (G_IO_ERROR, G_IO_ERROR_CANCELLED, "Cancelled"); finish_rename (file, TRUE, error); data = g_new0 (NautilusRenameData, 1); data->name = g_strdup (new_name); data->callback = callback; data->callback_data = callback_data; /* Attach the new name to the file. */ g_object_set_data_full (G_OBJECT (file), NEW_NAME_TAG, data, (GDestroyNotify) nautilus_rename_data_free); /* Start the timed wait to cancel the rename. */ truncated_old_name = get_truncated_name_for_file (file); truncated_new_name = eel_str_middle_truncate (new_name, MAXIMUM_DISPLAYED_FILE_NAME_LENGTH); wait_message = g_strdup_printf (_("Renaming “%s” to “%s”."), truncated_old_name, truncated_new_name); eel_timed_wait_start (cancel_rename_callback, file, wait_message, NULL); /* FIXME bugzilla.gnome.org 42395: Parent this? */ uri = nautilus_file_get_uri (file); DEBUG ("Renaming file %s to %s", uri, new_name); /* Start the rename. */ nautilus_file_rename (file, new_name, rename_callback, NULL); }