From c38f1fbad3aac5826101d030fd22015598ea7112 Mon Sep 17 00:00:00 2001 From: quexeky Date: Fri, 4 Jul 2025 14:27:34 +1000 Subject: [PATCH] feat: Download validation Signed-off-by: quexeky --- components/GameStatusButton.vue | 3 +- pages/queue.vue | 7 +- .../download_manager_builder.rs | 30 ++- .../src/download_manager/downloadable.rs | 1 + .../download_manager/util/progress_object.rs | 7 + .../util/rolling_progress_updates.rs | 3 + .../src/games/downloads/download_agent.rs | 17 +- .../src/games/downloads/download_logic.rs | 88 +------- src-tauri/src/games/downloads/drop_data.rs | 4 +- src-tauri/src/games/downloads/manifest.rs | 2 +- src-tauri/src/games/downloads/mod.rs | 1 + src-tauri/src/games/downloads/validate.rs | 198 ++++++++++++++++++ src-tauri/src/games/library.rs | 6 + 13 files changed, 272 insertions(+), 95 deletions(-) create mode 100644 src-tauri/src/games/downloads/validate.rs diff --git a/components/GameStatusButton.vue b/components/GameStatusButton.vue index d03398f..a10fd27 100644 --- a/components/GameStatusButton.vue +++ b/components/GameStatusButton.vue @@ -83,7 +83,8 @@ const emit = defineEmits<{ const showDropdown = computed( () => props.status.type === GameStatusEnum.Installed || - props.status.type === GameStatusEnum.SetupRequired + props.status.type === GameStatusEnum.SetupRequired || + props.status.type === GameStatusEnum.PartiallyInstalled ); const styles: { [key in GameStatusEnum]: string } = { diff --git a/pages/queue.vue b/pages/queue.vue index cee74b6..8d5c4ef 100644 --- a/pages/queue.vue +++ b/pages/queue.vue @@ -91,7 +91,12 @@