diff options
author | Zach Hilman <zachhilman@gmail.com> | 2018-10-09 21:48:35 -0400 |
---|---|---|
committer | Zach Hilman <zachhilman@gmail.com> | 2018-10-23 19:31:28 -0400 |
commit | e7e3d5898e4750e8ca8d859791dddf27705819b9 (patch) | |
tree | b737963f0e36f72d62d9ddce60c9e647dba06790 /src/yuzu/configuration/config.cpp | |
parent | 50e4e81fd3a998813316cdabd05ef56b12c91fae (diff) |
settings: Add users and current_user settings and remove username
Diffstat (limited to 'src/yuzu/configuration/config.cpp')
-rw-r--r-- | src/yuzu/configuration/config.cpp | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp index d029590ff3..36f0c4f4c8 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(); |