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/configuration/configure_system.h"
#include "yuzu/main.h" #include "yuzu/main.h"
static std::string GetImagePath(Service::Account::UUID uuid) { namespace {
return FileUtil::GetUserPath(FileUtil::UserPath::NANDDir) + constexpr std::array<int, 12> days_in_month = {{
"/system/save/8000000000000010/su/avators/" + uuid.FormatSwitch() + ".jpg";
}
static const std::array<int, 12> days_in_month = {{
31, 31,
29, 29,
31, 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 // 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, 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, 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, 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, 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) ConfigureSystem::ConfigureSystem(QWidget* parent)
: QWidget(parent), ui(new Ui::ConfigureSystem), : QWidget(parent), ui(new Ui::ConfigureSystem),
profile_manager(std::make_unique<Service::Account::ProfileManager>()) { 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); const auto& current_user = profile_manager->GetUser(Settings::values.current_user);
ASSERT(current_user != std::nullopt); ASSERT(current_user != std::nullopt);
const auto username = GetAccountUsername(*current_user); const auto username = GetAccountUsername(*profile_manager, *current_user);
scene->clear(); scene->clear();
scene->addPixmap( scene->addPixmap(
@ -164,14 +177,6 @@ void ConfigureSystem::UpdateCurrentUser() {
void ConfigureSystem::ReadSystemSettings() {} 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() { void ConfigureSystem::applyConfiguration() {
if (!enabled) if (!enabled)
return; return;
@ -252,7 +257,7 @@ void ConfigureSystem::RenameUser() {
const auto user = tree_view->currentIndex().row(); const auto user = tree_view->currentIndex().row();
const auto uuid = profile_manager->GetUser(user); const auto uuid = profile_manager->GetUser(user);
ASSERT(uuid != std::nullopt); ASSERT(uuid != std::nullopt);
const auto username = GetAccountUsername(*uuid); const auto username = GetAccountUsername(*profile_manager, *uuid);
Service::Account::ProfileBase profile; Service::Account::ProfileBase profile;
if (!profile_manager->GetProfileBase(*uuid, profile)) if (!profile_manager->GetProfileBase(*uuid, profile))
@ -292,7 +297,7 @@ void ConfigureSystem::DeleteUser() {
const auto index = tree_view->currentIndex().row(); const auto index = tree_view->currentIndex().row();
const auto uuid = profile_manager->GetUser(index); const auto uuid = profile_manager->GetUser(index);
ASSERT(uuid != std::nullopt); ASSERT(uuid != std::nullopt);
const auto username = GetAccountUsername(*uuid); const auto username = GetAccountUsername(*profile_manager, *uuid);
const auto confirm = const auto confirm =
QMessageBox::question(this, tr("Confirm Delete"), QMessageBox::question(this, tr("Confirm Delete"),
@ -320,7 +325,7 @@ void ConfigureSystem::SetUserImage() {
const auto index = tree_view->currentIndex().row(); const auto index = tree_view->currentIndex().row();
const auto uuid = profile_manager->GetUser(index); const auto uuid = profile_manager->GetUser(index);
ASSERT(uuid != std::nullopt); 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(), const auto file = QFileDialog::getOpenFileName(this, tr("Select User Image"), QString(),
"JPEG Images (*.jpg *.jpeg)"); "JPEG Images (*.jpg *.jpeg)");

View File

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