From e8c0b7f9c550965fd17ea2689a570eaf8f887e78 Mon Sep 17 00:00:00 2001 From: Thomas Date: Thu, 26 Dec 2024 22:26:37 +0100 Subject: [PATCH] Store configuration file in AppData root if not in working directory (#693) * Store configuration file in AppData root if not in working directory This fixes MacOS app bundles, as the emulator cannot write the config file into the app bundle. * Remove duplicate fs calls * I'm an idiot sandwich --------- Co-authored-by: wheremyfoodat <44909372+wheremyfoodat@users.noreply.github.com> --- src/config.cpp | 1 + src/emulator.cpp | 10 ++++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/config.cpp b/src/config.cpp index bfe84193e..9b2627444 100644 --- a/src/config.cpp +++ b/src/config.cpp @@ -27,6 +27,7 @@ void EmulatorConfig::load() { return; } + printf("Loading existing configuration file %s\n", path.string().c_str()); toml::value data; try { diff --git a/src/emulator.cpp b/src/emulator.cpp index 86adbf223..81a18f307 100644 --- a/src/emulator.cpp +++ b/src/emulator.cpp @@ -105,7 +105,13 @@ std::filesystem::path Emulator::getConfigPath() { if constexpr (Helpers::isAndroid()) { return getAndroidAppPath() / "config.toml"; } else { - return std::filesystem::current_path() / "config.toml"; + std::filesystem::path localPath = std::filesystem::current_path() / "config.toml"; + + if (std::filesystem::exists(localPath)) { + return localPath; + } else { + return getAppDataRoot() / "config.toml"; + } } } #endif @@ -468,4 +474,4 @@ void Emulator::reloadSettings() { } } #endif -} \ No newline at end of file +}