profile_manager: Load user icons, names, and UUIDs from system save

This commit is contained in:
Zach Hilman 2018-10-10 21:49:20 -04:00
parent 19c5cf9c63
commit 702622b8f1
11 changed files with 308 additions and 133 deletions

View file

@ -4,6 +4,7 @@
#include <QSettings>
#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();