From e7e3d5898e4750e8ca8d859791dddf27705819b9 Mon Sep 17 00:00:00 2001 From: Zach Hilman Date: Tue, 9 Oct 2018 21:48:35 -0400 Subject: settings: Add users and current_user settings and remove username --- src/yuzu/configuration/config.cpp | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) (limited to 'src/yuzu/configuration/config.cpp') diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp index d029590ff..36f0c4f4c 100644 --- a/src/yuzu/configuration/config.cpp +++ b/src/yuzu/configuration/config.cpp @@ -123,7 +123,25 @@ void Config::ReadValues() { qt_config->beginGroup("System"); Settings::values.use_docked_mode = qt_config->value("use_docked_mode", false).toBool(); Settings::values.enable_nfc = qt_config->value("enable_nfc", true).toBool(); - Settings::values.username = qt_config->value("username", "yuzu").toString().toStdString(); + + Settings::values.users.clear(); + const auto size = qt_config->beginReadArray("users"); + for (int i = 0; i < size; ++i) { + qt_config->setArrayIndex(i); + const Service::Account::UUID uuid(qt_config->value("uuid_low").toULongLong(), + qt_config->value("uuid_high").toULongLong()); + Settings::values.users.emplace_back(qt_config->value("username").toString().toStdString(), + uuid); + } + + qt_config->endArray(); + + if (Settings::values.users.empty()) + Settings::values.users.emplace_back("yuzu", Service::Account::UUID{}.Generate()); + + Settings::values.current_user = + std::clamp(qt_config->value("current_user", 0).toInt(), 0, size); + Settings::values.language_index = qt_config->value("language_index", 1).toInt(); qt_config->endGroup(); @@ -260,7 +278,19 @@ void Config::SaveValues() { qt_config->beginGroup("System"); qt_config->setValue("use_docked_mode", Settings::values.use_docked_mode); qt_config->setValue("enable_nfc", Settings::values.enable_nfc); - qt_config->setValue("username", QString::fromStdString(Settings::values.username)); + qt_config->setValue("current_user", Settings::values.current_user); + + qt_config->beginWriteArray("users", Settings::values.users.size()); + for (std::size_t i = 0; i < Settings::values.users.size(); ++i) { + qt_config->setArrayIndex(i); + const auto& user = Settings::values.users[i]; + qt_config->setValue("uuid_low", user.second.uuid[0]); + qt_config->setValue("uuid_high", user.second.uuid[1]); + qt_config->setValue("username", QString::fromStdString(user.first)); + } + + qt_config->endArray(); + qt_config->setValue("language_index", Settings::values.language_index); qt_config->endGroup(); -- cgit v1.2.3 From 702622b8f1eaa1b297a27a305ac56faeadf542d7 Mon Sep 17 00:00:00 2001 From: Zach Hilman Date: Wed, 10 Oct 2018 21:49:20 -0400 Subject: profile_manager: Load user icons, names, and UUIDs from system save --- src/yuzu/configuration/config.cpp | 30 ++---------------------------- 1 file changed, 2 insertions(+), 28 deletions(-) (limited to 'src/yuzu/configuration/config.cpp') diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp index 36f0c4f4c..f7a9a8dd4 100644 --- a/src/yuzu/configuration/config.cpp +++ b/src/yuzu/configuration/config.cpp @@ -4,6 +4,7 @@ #include #include "common/file_util.h" +#include "core/hle/service/acc/profile_manager.h" #include "input_common/main.h" #include "yuzu/configuration/config.h" #include "yuzu/ui_settings.h" @@ -124,23 +125,7 @@ void Config::ReadValues() { Settings::values.use_docked_mode = qt_config->value("use_docked_mode", false).toBool(); Settings::values.enable_nfc = qt_config->value("enable_nfc", true).toBool(); - Settings::values.users.clear(); - const auto size = qt_config->beginReadArray("users"); - for (int i = 0; i < size; ++i) { - qt_config->setArrayIndex(i); - const Service::Account::UUID uuid(qt_config->value("uuid_low").toULongLong(), - qt_config->value("uuid_high").toULongLong()); - Settings::values.users.emplace_back(qt_config->value("username").toString().toStdString(), - uuid); - } - - qt_config->endArray(); - - if (Settings::values.users.empty()) - Settings::values.users.emplace_back("yuzu", Service::Account::UUID{}.Generate()); - - Settings::values.current_user = - std::clamp(qt_config->value("current_user", 0).toInt(), 0, size); + Settings::values.current_user = std::clamp(qt_config->value("current_user", 0).toInt(), 0, 7); Settings::values.language_index = qt_config->value("language_index", 1).toInt(); qt_config->endGroup(); @@ -280,17 +265,6 @@ void Config::SaveValues() { qt_config->setValue("enable_nfc", Settings::values.enable_nfc); qt_config->setValue("current_user", Settings::values.current_user); - qt_config->beginWriteArray("users", Settings::values.users.size()); - for (std::size_t i = 0; i < Settings::values.users.size(); ++i) { - qt_config->setArrayIndex(i); - const auto& user = Settings::values.users[i]; - qt_config->setValue("uuid_low", user.second.uuid[0]); - qt_config->setValue("uuid_high", user.second.uuid[1]); - qt_config->setValue("username", QString::fromStdString(user.first)); - } - - qt_config->endArray(); - qt_config->setValue("language_index", Settings::values.language_index); qt_config->endGroup(); -- cgit v1.2.3 From 45f2a2fe29373f261144c097d169dad8b65fe012 Mon Sep 17 00:00:00 2001 From: Zach Hilman Date: Sat, 13 Oct 2018 13:02:33 -0400 Subject: acc: Fix account UUID duplication error --- src/yuzu/configuration/config.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/yuzu/configuration/config.cpp') diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp index f7a9a8dd4..1fe9a7edd 100644 --- a/src/yuzu/configuration/config.cpp +++ b/src/yuzu/configuration/config.cpp @@ -125,7 +125,8 @@ void Config::ReadValues() { Settings::values.use_docked_mode = qt_config->value("use_docked_mode", false).toBool(); Settings::values.enable_nfc = qt_config->value("enable_nfc", true).toBool(); - Settings::values.current_user = std::clamp(qt_config->value("current_user", 0).toInt(), 0, 7); + Settings::values.current_user = std::clamp(qt_config->value("current_user", 0).toInt(), 0, + Service::Account::MAX_USERS - 1); Settings::values.language_index = qt_config->value("language_index", 1).toInt(); qt_config->endGroup(); -- cgit v1.2.3