From 65a7150bd366bbc5f9db75c88b7d3686e457c37f Mon Sep 17 00:00:00 2001 From: DecDuck Date: Mon, 30 Dec 2024 15:37:29 +1100 Subject: [PATCH] feat(process): shared child with stop command --- desktop/components/GameStatusButton.vue | 7 ++-- desktop/pages/library/[id]/index.vue | 22 ++++++++++-- desktop/src-tauri/Cargo.lock | 1 + desktop/src-tauri/Cargo.toml | 1 + .../src-tauri/src/process/process_commands.rs | 2 +- .../src-tauri/src/process/process_manager.rs | 36 ++++++++++++------- 6 files changed, 51 insertions(+), 18 deletions(-) diff --git a/desktop/components/GameStatusButton.vue b/desktop/components/GameStatusButton.vue index 65f3c7a1..d9722d29 100644 --- a/desktop/components/GameStatusButton.vue +++ b/desktop/components/GameStatusButton.vue @@ -57,6 +57,7 @@ const emit = defineEmits<{ (e: "launch"): void; (e: "queue"): void; (e: "uninstall"): void; + (e: "kill"): void; }>(); const showDropdown = computed(() => props.status.type === GameStatusEnum.Installed || props.status.type === GameStatusEnum.SetupRequired); @@ -69,7 +70,7 @@ const styles: { [key in GameStatusEnum]: string } = { [GameStatusEnum.Installed]: "bg-green-600 text-white hover:bg-green-500 focus-visible:outline-green-600", [GameStatusEnum.Updating]: "bg-zinc-800 text-white hover:bg-zinc-700 focus-visible:outline-zinc-700", [GameStatusEnum.Uninstalling]: "bg-zinc-800 text-white hover:bg-zinc-700 focus-visible:outline-zinc-700", - [GameStatusEnum.Running]: "bg-zinc-800 text-white hover:bg-zinc-700 focus-visible:outline-zinc-700" + [GameStatusEnum.Running]: "bg-zinc-800 text-white focus-visible:outline-zinc-700" }; const buttonNames: { [key in GameStatusEnum]: string } = { @@ -80,7 +81,7 @@ const buttonNames: { [key in GameStatusEnum]: string } = { [GameStatusEnum.Installed]: "Play", [GameStatusEnum.Updating]: "Updating", [GameStatusEnum.Uninstalling]: "Uninstalling", - [GameStatusEnum.Running]: "Running" + [GameStatusEnum.Running]: "Stop" }; const buttonIcons: { [key in GameStatusEnum]: Component } = { @@ -102,6 +103,6 @@ const buttonActions: { [key in GameStatusEnum]: () => void } = { [GameStatusEnum.Installed]: () => emit("launch"), [GameStatusEnum.Updating]: () => emit("queue"), [GameStatusEnum.Uninstalling]: () => { }, - [GameStatusEnum.Running]: () => { } + [GameStatusEnum.Running]: () => emit("kill") }; diff --git a/desktop/pages/library/[id]/index.vue b/desktop/pages/library/[id]/index.vue index 5d828bff..0a3513dd 100644 --- a/desktop/pages/library/[id]/index.vue +++ b/desktop/pages/library/[id]/index.vue @@ -23,6 +23,7 @@ @launch="() => launch()" @queue="() => queue()" @uninstall="() => uninstall()" + @kill="() => kill()" :status="status" />