From 3164ec7106de432723d2687dca241fe82a387177 Mon Sep 17 00:00:00 2001 From: DecDuck Date: Thu, 26 Dec 2024 11:59:26 +1100 Subject: [PATCH] feat(game): game uninstalling & partial compat --- desktop/components/GameStatusButton.vue | 58 +++++-- desktop/composables/queue.ts | 5 +- desktop/package.json | 1 + desktop/pages/library/[id]/index.vue | 5 + desktop/pages/settings.vue | 38 ++--- desktop/pages/settings/compatibility.vue | 3 + desktop/src-tauri/Cargo.lock | 49 ++++++ desktop/src-tauri/Cargo.toml | 1 + desktop/src-tauri/capabilities/default.json | 3 +- desktop/src-tauri/src/auth.rs | 6 +- desktop/src-tauri/src/cleanup.rs | 3 +- desktop/src-tauri/src/db.rs | 5 + .../src-tauri/src/downloads/download_agent.rs | 7 +- .../src-tauri/src/downloads/download_logic.rs | 4 +- .../src/downloads/download_manager.rs | 19 +++ .../src/downloads/download_manager_builder.rs | 152 ++++++++++++++---- desktop/src-tauri/src/downloads/mod.rs | 2 +- desktop/src-tauri/src/lib.rs | 73 ++++++++- desktop/src-tauri/src/library.rs | 29 +++- desktop/src-tauri/src/process/compat.rs | 51 ++++++ desktop/src-tauri/src/process/mod.rs | 3 +- .../src-tauri/src/process/process_commands.rs | 5 +- .../src-tauri/src/process/process_manager.rs | 28 +++- desktop/src-tauri/src/state.rs | 5 +- desktop/src-tauri/tauri.conf.json | 3 +- desktop/yarn.lock | 7 + 26 files changed, 469 insertions(+), 96 deletions(-) create mode 100644 desktop/pages/settings/compatibility.vue create mode 100644 desktop/src-tauri/src/process/compat.rs diff --git a/desktop/components/GameStatusButton.vue b/desktop/components/GameStatusButton.vue index a71fca4e..dd94b3b0 100644 --- a/desktop/components/GameStatusButton.vue +++ b/desktop/components/GameStatusButton.vue @@ -1,39 +1,65 @@ diff --git a/desktop/composables/queue.ts b/desktop/composables/queue.ts index 04872608..c220128b 100644 --- a/desktop/composables/queue.ts +++ b/desktop/composables/queue.ts @@ -1,11 +1,12 @@ import { listen } from "@tauri-apps/api/event"; export type QueueState = { - queue: Array<{ id: string; status: string, progress: number | null }>; + queue: Array<{ id: string; status: string; progress: number | null }>; + status: string; }; export const useQueueState = () => - useState("queue", () => ({ queue: [] })); + useState("queue", () => ({ queue: [], status: "Unknown" })); listen("update_queue", (event) => { const queue = useQueueState(); diff --git a/desktop/package.json b/desktop/package.json index 7226f0f3..15f854d8 100644 --- a/desktop/package.json +++ b/desktop/package.json @@ -18,6 +18,7 @@ "@tauri-apps/api": ">=2.0.0", "@tauri-apps/plugin-deep-link": "~2", "@tauri-apps/plugin-dialog": "^2.0.1", + "@tauri-apps/plugin-os": "~2", "@tauri-apps/plugin-shell": ">=2.0.0", "markdown-it": "^14.1.0", "moment": "^2.30.1", diff --git a/desktop/pages/library/[id]/index.vue b/desktop/pages/library/[id]/index.vue index a770ac8e..30f2bb63 100644 --- a/desktop/pages/library/[id]/index.vue +++ b/desktop/pages/library/[id]/index.vue @@ -22,6 +22,7 @@ @install="() => installFlow()" @play="() => play()" @queue="() => queue()" + @uninstall="() => uninstall()" :status="status" /> diff --git a/desktop/pages/settings.vue b/desktop/pages/settings.vue index 1e92a0f6..1363f893 100644 --- a/desktop/pages/settings.vue +++ b/desktop/pages/settings.vue @@ -9,25 +9,18 @@