configure_system: Clear selection after user delete

This commit is contained in:
Zach Hilman 2018-10-11 09:16:32 -04:00
parent 702622b8f1
commit e408bbceed
2 changed files with 18 additions and 12 deletions

View File

@ -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);

View File

@ -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();
}