void action_copy_contents(file_info* info, bool* populated) { Result res = 0; if(R_FAILED(res = clipboard_set_contents(*info->archive, info->path))) { error_display_res(info, ui_draw_file_info, res, "Failed to copy contents to clipboard."); return; } ui_push(prompt_create("Success", "Content copied to clipboard.", COLOR_TEXT, false, info, NULL, ui_draw_file_info, action_copy_files_success_onresponse)); }
static void files_action_update(ui_view* view, void* data, linked_list* items, list_item* selected, bool selectedTouched) { files_action_data* actionData = (files_action_data*) data; if(hidKeysDown() & KEY_B) { ui_pop(); list_destroy(view); free(data); return; } if(selected != NULL && (selected->data != NULL || selected == © || selected == ©_all_contents) && (selectedTouched || (hidKeysDown() & KEY_A))) { void(*action)(linked_list*, list_item*) = (void(*)(linked_list*, list_item*)) selected->data; ui_pop(); list_destroy(view); if(selected == © || selected == ©_all_contents) { file_info* info = (file_info*) actionData->selected->data; Result res = 0; if(R_SUCCEEDED(res = clipboard_set_contents(actionData->parent->archiveId, &actionData->parent->archivePath, info->path, selected == ©_all_contents))) { prompt_display("Success", selected == ©_all_contents ? "Current directory contents copied to clipboard." : info->isDirectory ? "Current directory copied to clipboard." : "File copied to clipboard.", COLOR_TEXT, false, info, NULL, ui_draw_file_info, NULL); } else { error_display_res(NULL, info, ui_draw_file_info, res, "Failed to copy to clipboard."); } } else { action(actionData->items, actionData->selected); } free(data); return; } if(linked_list_size(items) == 0) { file_info* info = (file_info*) actionData->selected->data; if(info->isDirectory) { if(info->containsCias) { linked_list_add(items, &install_all_cias); linked_list_add(items, &install_and_delete_all_cias); linked_list_add(items, &delete_all_cias); } if(info->containsTickets) { linked_list_add(items, &install_all_tickets); linked_list_add(items, &install_and_delete_all_tickets); linked_list_add(items, &delete_all_tickets); } linked_list_add(items, &delete_all_contents); linked_list_add(items, ©_all_contents); linked_list_add(items, &delete_dir); } else { if(info->isCia) { linked_list_add(items, &install_cia); linked_list_add(items, &install_and_delete_cia); } if(info->isTicket) { linked_list_add(items, &install_ticket); linked_list_add(items, &install_and_delete_ticket); } linked_list_add(items, &delete_file); } linked_list_add(items, ©); linked_list_add(items, &paste); } }