diff options
author | Zach Hilman <zachhilman@gmail.com> | 2018-10-11 15:16:32 +0200 |
---|---|---|
committer | Zach Hilman <zachhilman@gmail.com> | 2018-10-24 01:31:28 +0200 |
commit | e408bbceed90da8965480e23d05fb764fcbfbb84 (patch) | |
tree | ff76fcbea6d80db3c8b0ca86e1fdd09a70f8743e | |
parent | profile_manager: Load user icons, names, and UUIDs from system save (diff) | |
download | yuzu-e408bbceed90da8965480e23d05fb764fcbfbb84.tar yuzu-e408bbceed90da8965480e23d05fb764fcbfbb84.tar.gz yuzu-e408bbceed90da8965480e23d05fb764fcbfbb84.tar.bz2 yuzu-e408bbceed90da8965480e23d05fb764fcbfbb84.tar.lz yuzu-e408bbceed90da8965480e23d05fb764fcbfbb84.tar.xz yuzu-e408bbceed90da8965480e23d05fb764fcbfbb84.tar.zst yuzu-e408bbceed90da8965480e23d05fb764fcbfbb84.zip |
-rw-r--r-- | src/core/hle/service/acc/profile_manager.cpp | 2 | ||||
-rw-r--r-- | src/yuzu/configuration/configure_system.cpp | 28 |
2 files changed, 18 insertions, 12 deletions
diff --git a/src/core/hle/service/acc/profile_manager.cpp b/src/core/hle/service/acc/profile_manager.cpp index b0ea06b48..43743d39e 100644 --- a/src/core/hle/service/acc/profile_manager.cpp +++ b/src/core/hle/service/acc/profile_manager.cpp @@ -323,7 +323,7 @@ void ProfileManager::WriteUserSaveFile() { FileUtil::IOFile save(FileUtil::GetUserPath(FileUtil::UserPath::NANDDir) + "/system/save/8000000000000010/su/avators/profiles.dat", - "rb"); + "wb"); save.Resize(sizeof(ProfileDataRaw)); save.Seek(0, SEEK_SET); diff --git a/src/yuzu/configuration/configure_system.cpp b/src/yuzu/configuration/configure_system.cpp index af2acdd45..87301b5a2 100644 --- a/src/yuzu/configuration/configure_system.cpp +++ b/src/yuzu/configuration/configure_system.cpp @@ -13,6 +13,7 @@ #include <QVBoxLayout> #include "common/common_paths.h" #include "common/logging/backend.h" +#include "common/string_util.h" #include "core/core.h" #include "core/settings.h" #include "ui_configure_system.h" @@ -112,8 +113,6 @@ void ConfigureSystem::setConfiguration() { item_model->removeRows(0, item_model->rowCount()); list_items.clear(); - ui->pm_add->setEnabled(profile_manager->GetUserCount() < 8); - PopulateUserList(); UpdateCurrentUser(); } @@ -156,6 +155,8 @@ void ConfigureSystem::PopulateUserList() { } void ConfigureSystem::UpdateCurrentUser() { + ui->pm_add->setEnabled(profile_manager->GetUserCount() < 8); + const auto& current_user = profile_manager->GetAllUsers()[Settings::values.current_user]; const auto username = GetAccountUsername(current_user); @@ -230,10 +231,7 @@ void ConfigureSystem::SelectUser(const QModelIndex& index) { UpdateCurrentUser(); ui->pm_remove->setEnabled(profile_manager->GetUserCount() >= 2); - ui->pm_remove->setEnabled(false); - ui->pm_rename->setEnabled(true); - ui->pm_set_image->setEnabled(true); } @@ -282,9 +280,12 @@ void ConfigureSystem::RenameUser() { profile_manager->SetProfileBase(uuid, profile); - list_items[user][0] = new QStandardItem{ - GetIcon(uuid).scaled(64, 64, Qt::IgnoreAspectRatio, Qt::SmoothTransformation), - QString::fromStdString(username_std + '\n' + uuid.FormatSwitch())}; + item_model->setItem( + user, 0, + new QStandardItem{ + GetIcon(uuid).scaled(64, 64, Qt::IgnoreAspectRatio, Qt::SmoothTransformation), + QString::fromStdString(username_std + '\n' + uuid.FormatSwitch())}); + UpdateCurrentUser(); } void ConfigureSystem::DeleteUser() { @@ -302,11 +303,13 @@ void ConfigureSystem::DeleteUser() { if (Settings::values.current_user == tree_view->currentIndex().row()) Settings::values.current_user = 0; + UpdateCurrentUser(); if (!profile_manager->RemoveUser(uuid)) return; item_model->removeRows(tree_view->currentIndex().row(), 1); + tree_view->clearSelection(); ui->pm_remove->setEnabled(false); ui->pm_rename->setEnabled(false); @@ -334,7 +337,10 @@ void ConfigureSystem::SetUserImage() { FileUtil::CreateFullPath(GetImagePath(uuid)); FileUtil::Copy(file.toStdString(), GetImagePath(uuid)); - list_items[index][0] = new QStandardItem{ - GetIcon(uuid).scaled(64, 64, Qt::IgnoreAspectRatio, Qt::SmoothTransformation), - QString::fromStdString(username + '\n' + uuid.FormatSwitch())}; + item_model->setItem( + index, 0, + new QStandardItem{ + GetIcon(uuid).scaled(64, 64, Qt::IgnoreAspectRatio, Qt::SmoothTransformation), + QString::fromStdString(username + '\n' + uuid.FormatSwitch())}); + UpdateCurrentUser(); } |