From c360dbf9c42f71e7931c56b7a396ba7f7e9982e6 Mon Sep 17 00:00:00 2001 From: SulfurNitride Date: Mon, 23 Feb 2026 17:44:12 -0600 Subject: Remove umu-run, keep game as child process for Steam tracking MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Remove umu-run entirely (crashed due to pressure-vessel/FUSE incompatibility) — use raw `proton run` instead - Replace startDetached() with QProcess::start() so the game stays in Fluorine's process tree. This lets Steam track the game lifetime and makes the "close game" button work when Fluorine is added as a non-Steam game. - Add writeIniValueDirect/readIniValueDirect for safe Bethesda INI handling without QSettings corruption - Fix prefix_setup.rs to skip umu-run bootstrapping - Clean up settings UI, build scripts, and docs for umu-run removal Co-Authored-By: Claude Opus 4.6 --- libs/uibase/include/uibase/registry.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'libs/uibase/include') diff --git a/libs/uibase/include/uibase/registry.h b/libs/uibase/include/uibase/registry.h index 00013df..6a93f9d 100644 --- a/libs/uibase/include/uibase/registry.h +++ b/libs/uibase/include/uibase/registry.h @@ -28,6 +28,12 @@ namespace MOBase QDLLEXPORT bool WriteRegistryValue(const QString& appName, const QString& keyName, const QString& value, const QString& fileName); +// Removes a key from a Bethesda-style INI file without QSettings. +// Uses a safe line-by-line approach that does not corrupt backslashes +// or URL-encode spaces in key names. +QDLLEXPORT bool RemoveRegistryValue(const QString& section, const QString& key, + const QString& fileName); + #ifdef _WIN32 // Windows-specific overload using wide strings QDLLEXPORT bool WriteRegistryValue(const wchar_t* appName, const wchar_t* keyName, -- cgit v1.3.1