configure_system: Make GetAccountUsername() an internal function

We can just make the function accept an arbitrary ProfileManager
reference and operate on that instead of tying the function to the class
itself. This allows us to keep the function internal to the cpp file and
removes the need to forward declare the UUID struct.
This commit is contained in:
Lioncash 2018-10-25 16:58:37 -04:00
parent bf7da804c5
commit 5172354e29
2 changed files with 28 additions and 25 deletions

View file

@ -21,12 +21,8 @@
#include "yuzu/configuration/configure_system.h"
#include "yuzu/main.h"
static std::string GetImagePath(Service::Account::UUID uuid) {
return FileUtil::GetUserPath(FileUtil::UserPath::NANDDir) +
"/system/save/8000000000000010/su/avators/" + uuid.FormatSwitch() + ".jpg";
}
static const std::array<int, 12> days_in_month = {{
namespace {
constexpr std::array<int, 12> days_in_month = {{
31,
29,
31,
@ -42,7 +38,7 @@ static const std::array<int, 12> days_in_month = {{
}};
// Same backup JPEG used by acc IProfile::GetImage if no jpeg found
static constexpr std::array<u8, 107> backup_jpeg{
constexpr std::array<u8, 107> backup_jpeg{
0xff, 0xd8, 0xff, 0xdb, 0x00, 0x43, 0x00, 0x03, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x02, 0x02,
0x02, 0x03, 0x03, 0x03, 0x03, 0x04, 0x06, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x06, 0x06, 0x05,
0x06, 0x09, 0x08, 0x0a, 0x0a, 0x09, 0x08, 0x09, 0x09, 0x0a, 0x0c, 0x0f, 0x0c, 0x0a, 0x0b, 0x0e,
@ -52,6 +48,23 @@ static constexpr std::array<u8, 107> backup_jpeg{
0x01, 0x01, 0x00, 0x00, 0x3f, 0x00, 0xd2, 0xcf, 0x20, 0xff, 0xd9,
};
std::string GetImagePath(Service::Account::UUID uuid) {
return FileUtil::GetUserPath(FileUtil::UserPath::NANDDir) +
"/system/save/8000000000000010/su/avators/" + uuid.FormatSwitch() + ".jpg";
}
std::string GetAccountUsername(const Service::Account::ProfileManager& manager,
Service::Account::UUID uuid) {
Service::Account::ProfileBase profile;
if (!manager.GetProfileBase(uuid, profile)) {
return "";
}
return Common::StringFromFixedZeroTerminatedBuffer(
reinterpret_cast<const char*>(profile.username.data()), profile.username.size());
}
} // Anonymous namespace
ConfigureSystem::ConfigureSystem(QWidget* parent)
: QWidget(parent), ui(new Ui::ConfigureSystem),
profile_manager(std::make_unique<Service::Account::ProfileManager>()) {
@ -154,7 +167,7 @@ void ConfigureSystem::UpdateCurrentUser() {
const auto& current_user = profile_manager->GetUser(Settings::values.current_user);
ASSERT(current_user != std::nullopt);
const auto username = GetAccountUsername(*current_user);
const auto username = GetAccountUsername(*profile_manager, *current_user);
scene->clear();
scene->addPixmap(
@ -164,14 +177,6 @@ void ConfigureSystem::UpdateCurrentUser() {
void ConfigureSystem::ReadSystemSettings() {}
std::string ConfigureSystem::GetAccountUsername(Service::Account::UUID uuid) const {
Service::Account::ProfileBase profile;
if (!profile_manager->GetProfileBase(uuid, profile))
return "";
return Common::StringFromFixedZeroTerminatedBuffer(
reinterpret_cast<const char*>(profile.username.data()), profile.username.size());
}
void ConfigureSystem::applyConfiguration() {
if (!enabled)
return;
@ -252,7 +257,7 @@ void ConfigureSystem::RenameUser() {
const auto user = tree_view->currentIndex().row();
const auto uuid = profile_manager->GetUser(user);
ASSERT(uuid != std::nullopt);
const auto username = GetAccountUsername(*uuid);
const auto username = GetAccountUsername(*profile_manager, *uuid);
Service::Account::ProfileBase profile;
if (!profile_manager->GetProfileBase(*uuid, profile))
@ -292,7 +297,7 @@ void ConfigureSystem::DeleteUser() {
const auto index = tree_view->currentIndex().row();
const auto uuid = profile_manager->GetUser(index);
ASSERT(uuid != std::nullopt);
const auto username = GetAccountUsername(*uuid);
const auto username = GetAccountUsername(*profile_manager, *uuid);
const auto confirm =
QMessageBox::question(this, tr("Confirm Delete"),
@ -320,7 +325,7 @@ void ConfigureSystem::SetUserImage() {
const auto index = tree_view->currentIndex().row();
const auto uuid = profile_manager->GetUser(index);
ASSERT(uuid != std::nullopt);
const auto username = GetAccountUsername(*uuid);
const auto username = GetAccountUsername(*profile_manager, *uuid);
const auto file = QFileDialog::getOpenFileName(this, tr("Select User Image"), QString(),
"JPEG Images (*.jpg *.jpeg)");

View file

@ -9,17 +9,16 @@
#include <QList>
#include <QWidget>
namespace Service::Account {
class ProfileManager;
struct UUID;
} // namespace Service::Account
class QGraphicsScene;
class QStandardItem;
class QStandardItemModel;
class QTreeView;
class QVBoxLayout;
namespace Service::Account {
class ProfileManager;
}
namespace Ui {
class ConfigureSystem;
}
@ -36,7 +35,6 @@ public:
private:
void ReadSystemSettings();
std::string GetAccountUsername(Service::Account::UUID uuid) const;
void UpdateBirthdayComboBox(int birthmonth_index);
void RefreshConsoleID();