summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZach Hilman <zachhilman@gmail.com>2018-10-11 15:16:32 +0200
committerZach Hilman <zachhilman@gmail.com>2018-10-24 01:31:28 +0200
commite408bbceed90da8965480e23d05fb764fcbfbb84 (patch)
treeff76fcbea6d80db3c8b0ca86e1fdd09a70f8743e
parentprofile_manager: Load user icons, names, and UUIDs from system save (diff)
downloadyuzu-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.cpp2
-rw-r--r--src/yuzu/configuration/configure_system.cpp28
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();
}