From 64e174237e7ad9ae082e24303d321534f4e78bca Mon Sep 17 00:00:00 2001
From: Morph <39850852+Morph1984@users.noreply.github.com>
Date: Sun, 27 Sep 2020 14:20:22 -0400
Subject: config: Migrate config files into config/custom

Co-authored-by: lat9nq <lat9nq@virginia.edu>
---
 src/yuzu/configuration/config.cpp | 49 ++++++++++++++++++++++++---------------
 1 file changed, 30 insertions(+), 19 deletions(-)

(limited to 'src/yuzu/configuration/config.cpp')

diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp
index 545cafca99..618f991b05 100644
--- a/src/yuzu/configuration/config.cpp
+++ b/src/yuzu/configuration/config.cpp
@@ -15,27 +15,10 @@
 
 namespace FS = Common::FS;
 
-Config::Config(const std::string& config_file, ConfigType config_type) : type(config_type) {
+Config::Config(const std::string& config_name, ConfigType config_type) : type(config_type) {
     global = config_type == ConfigType::GlobalConfig;
 
-    switch (config_type) {
-    case ConfigType::GlobalConfig:
-    case ConfigType::PerGameConfig:
-        qt_config_loc = fmt::format("{}" DIR_SEP "{}.ini", FS::GetUserPath(FS::UserPath::ConfigDir),
-                                    config_file);
-        FS::CreateFullPath(qt_config_loc);
-        qt_config = std::make_unique<QSettings>(QString::fromStdString(qt_config_loc),
-                                                QSettings::IniFormat);
-        Reload();
-        break;
-    case ConfigType::InputProfile:
-        qt_config_loc = fmt::format("{}input" DIR_SEP "{}.ini",
-                                    FS::GetUserPath(FS::UserPath::ConfigDir), config_file);
-        FS::CreateFullPath(qt_config_loc);
-        qt_config = std::make_unique<QSettings>(QString::fromStdString(qt_config_loc),
-                                                QSettings::IniFormat);
-        break;
-    }
+    Initialize(config_name);
 }
 
 Config::~Config() {
@@ -256,6 +239,34 @@ const std::array<UISettings::Shortcut, 16> Config::default_hotkeys{{
 }};
 // clang-format on
 
+void Config::Initialize(const std::string& config_name) {
+    switch (type) {
+    case ConfigType::GlobalConfig:
+        qt_config_loc = fmt::format("{}" DIR_SEP "{}.ini", FS::GetUserPath(FS::UserPath::ConfigDir),
+                                    config_name);
+        FS::CreateFullPath(qt_config_loc);
+        qt_config = std::make_unique<QSettings>(QString::fromStdString(qt_config_loc),
+                                                QSettings::IniFormat);
+        Reload();
+        break;
+    case ConfigType::PerGameConfig:
+        qt_config_loc = fmt::format("{}custom" DIR_SEP "{}.ini",
+                                    FS::GetUserPath(FS::UserPath::ConfigDir), config_name);
+        FS::CreateFullPath(qt_config_loc);
+        qt_config = std::make_unique<QSettings>(QString::fromStdString(qt_config_loc),
+                                                QSettings::IniFormat);
+        Reload();
+        break;
+    case ConfigType::InputProfile:
+        qt_config_loc = fmt::format("{}input" DIR_SEP "{}.ini",
+                                    FS::GetUserPath(FS::UserPath::ConfigDir), config_name);
+        FS::CreateFullPath(qt_config_loc);
+        qt_config = std::make_unique<QSettings>(QString::fromStdString(qt_config_loc),
+                                                QSettings::IniFormat);
+        break;
+    }
+}
+
 void Config::ReadPlayerValue(std::size_t player_index) {
     const QString player_prefix = [this, player_index] {
         if (type == ConfigType::InputProfile) {
-- 
cgit v1.2.3-70-g09d2