diff options
Diffstat (limited to 'src/yuzu/configuration')
| -rw-r--r-- | src/yuzu/configuration/config.cpp | 13 | ||||
| -rw-r--r-- | src/yuzu/configuration/config.h | 14 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_system.cpp | 64 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_system.h | 35 | 
4 files changed, 64 insertions, 62 deletions
diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp index 1fe9a7edd..d4fd60a73 100644 --- a/src/yuzu/configuration/config.cpp +++ b/src/yuzu/configuration/config.cpp @@ -13,11 +13,16 @@ Config::Config() {      // TODO: Don't hardcode the path; let the frontend decide where to put the config files.      qt_config_loc = FileUtil::GetUserPath(FileUtil::UserPath::ConfigDir) + "qt-config.ini";      FileUtil::CreateFullPath(qt_config_loc); -    qt_config = new QSettings(QString::fromStdString(qt_config_loc), QSettings::IniFormat); +    qt_config = +        std::make_unique<QSettings>(QString::fromStdString(qt_config_loc), QSettings::IniFormat);      Reload();  } +Config::~Config() { +    Save(); +} +  const std::array<int, Settings::NativeButton::NumButtons> Config::default_buttons = {      Qt::Key_A, Qt::Key_S, Qt::Key_Z,    Qt::Key_X,  Qt::Key_3,     Qt::Key_4,    Qt::Key_Q,      Qt::Key_W, Qt::Key_1, Qt::Key_2,    Qt::Key_N,  Qt::Key_M,     Qt::Key_F,    Qt::Key_T, @@ -342,9 +347,3 @@ void Config::Reload() {  void Config::Save() {      SaveValues();  } - -Config::~Config() { -    Save(); - -    delete qt_config; -} diff --git a/src/yuzu/configuration/config.h b/src/yuzu/configuration/config.h index cbf745ea2..9c99c1b75 100644 --- a/src/yuzu/configuration/config.h +++ b/src/yuzu/configuration/config.h @@ -5,6 +5,7 @@  #pragma once  #include <array> +#include <memory>  #include <string>  #include <QVariant>  #include "core/settings.h" @@ -12,12 +13,6 @@  class QSettings;  class Config { -    QSettings* qt_config; -    std::string qt_config_loc; - -    void ReadValues(); -    void SaveValues(); -  public:      Config();      ~Config(); @@ -27,4 +22,11 @@ public:      static const std::array<int, Settings::NativeButton::NumButtons> default_buttons;      static const std::array<std::array<int, 5>, Settings::NativeAnalog::NumAnalogs> default_analogs; + +private: +    void ReadValues(); +    void SaveValues(); + +    std::unique_ptr<QSettings> qt_config; +    std::string qt_config_loc;  }; diff --git a/src/yuzu/configuration/configure_system.cpp b/src/yuzu/configuration/configure_system.cpp index 83cc49dfc..20ffb0a9a 100644 --- a/src/yuzu/configuration/configure_system.cpp +++ b/src/yuzu/configuration/configure_system.cpp @@ -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,15 +48,32 @@ 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>()) {      ui->setupUi(this);      connect(ui->combo_birthmonth,              static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, -            &ConfigureSystem::updateBirthdayComboBox); +            &ConfigureSystem::UpdateBirthdayComboBox);      connect(ui->button_regenerate_console_id, &QPushButton::clicked, this, -            &ConfigureSystem::refreshConsoleID); +            &ConfigureSystem::RefreshConsoleID);      layout = new QVBoxLayout;      tree_view = new QTreeView; @@ -153,8 +166,8 @@ void ConfigureSystem::UpdateCurrentUser() {      ui->pm_add->setEnabled(profile_manager->GetUserCount() < Service::Account::MAX_USERS);      const auto& current_user = profile_manager->GetUser(Settings::values.current_user); -    ASSERT(current_user != boost::none); -    const auto username = GetAccountUsername(*current_user); +    ASSERT(current_user != std::nullopt); +    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; @@ -180,7 +185,7 @@ void ConfigureSystem::applyConfiguration() {      Settings::Apply();  } -void ConfigureSystem::updateBirthdayComboBox(int birthmonth_index) { +void ConfigureSystem::UpdateBirthdayComboBox(int birthmonth_index) {      if (birthmonth_index < 0 || birthmonth_index >= 12)          return; @@ -205,7 +210,7 @@ void ConfigureSystem::updateBirthdayComboBox(int birthmonth_index) {      ui->combo_birthday->setCurrentIndex(birthday_index);  } -void ConfigureSystem::refreshConsoleID() { +void ConfigureSystem::RefreshConsoleID() {      QMessageBox::StandardButton reply;      QString warning_text = tr("This will replace your current virtual Switch with a new one. "                                "Your current virtual Switch will not be recoverable. " @@ -232,8 +237,7 @@ void ConfigureSystem::SelectUser(const QModelIndex& index) {  }  void ConfigureSystem::AddUser() { -    Service::Account::UUID uuid; -    uuid.Generate(); +    const auto uuid = Service::Account::UUID::Generate();      bool ok = false;      const auto username = @@ -252,8 +256,8 @@ void ConfigureSystem::AddUser() {  void ConfigureSystem::RenameUser() {      const auto user = tree_view->currentIndex().row();      const auto uuid = profile_manager->GetUser(user); -    ASSERT(uuid != boost::none); -    const auto username = GetAccountUsername(*uuid); +    ASSERT(uuid != std::nullopt); +    const auto username = GetAccountUsername(*profile_manager, *uuid);      Service::Account::ProfileBase profile;      if (!profile_manager->GetProfileBase(*uuid, profile)) @@ -292,8 +296,8 @@ void ConfigureSystem::RenameUser() {  void ConfigureSystem::DeleteUser() {      const auto index = tree_view->currentIndex().row();      const auto uuid = profile_manager->GetUser(index); -    ASSERT(uuid != boost::none); -    const auto username = GetAccountUsername(*uuid); +    ASSERT(uuid != std::nullopt); +    const auto username = GetAccountUsername(*profile_manager, *uuid);      const auto confirm =          QMessageBox::question(this, tr("Confirm Delete"), @@ -320,11 +324,11 @@ void ConfigureSystem::DeleteUser() {  void ConfigureSystem::SetUserImage() {      const auto index = tree_view->currentIndex().row();      const auto uuid = profile_manager->GetUser(index); -    ASSERT(uuid != boost::none); -    const auto username = GetAccountUsername(*uuid); +    ASSERT(uuid != std::nullopt); +    const auto username = GetAccountUsername(*profile_manager, *uuid);      const auto file = QFileDialog::getOpenFileName(this, tr("Select User Image"), QString(), -                                                   "JPEG Images (*.jpg *.jpeg)"); +                                                   tr("JPEG Images (*.jpg *.jpeg)"));      if (file.isEmpty())          return; diff --git a/src/yuzu/configuration/configure_system.h b/src/yuzu/configuration/configure_system.h index b73e0719c..07764e1f7 100644 --- a/src/yuzu/configuration/configure_system.h +++ b/src/yuzu/configuration/configure_system.h @@ -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;  } @@ -29,28 +28,25 @@ class ConfigureSystem : public QWidget {  public:      explicit ConfigureSystem(QWidget* parent = nullptr); -    ~ConfigureSystem(); +    ~ConfigureSystem() override;      void applyConfiguration();      void setConfiguration(); -    void PopulateUserList(); -    void UpdateCurrentUser(); +private: +    void ReadSystemSettings(); -public slots: -    void updateBirthdayComboBox(int birthmonth_index); -    void refreshConsoleID(); +    void UpdateBirthdayComboBox(int birthmonth_index); +    void RefreshConsoleID(); +    void PopulateUserList(); +    void UpdateCurrentUser();      void SelectUser(const QModelIndex& index);      void AddUser();      void RenameUser();      void DeleteUser();      void SetUserImage(); -private: -    void ReadSystemSettings(); -    std::string GetAccountUsername(Service::Account::UUID uuid) const; -      QVBoxLayout* layout;      QTreeView* tree_view;      QStandardItemModel* item_model; @@ -59,11 +55,12 @@ private:      std::vector<QList<QStandardItem*>> list_items;      std::unique_ptr<Ui::ConfigureSystem> ui; -    bool enabled; +    bool enabled = false; -    int birthmonth, birthday; -    int language_index; -    int sound_index; +    int birthmonth = 0; +    int birthday = 0; +    int language_index = 0; +    int sound_index = 0;      std::unique_ptr<Service::Account::ProfileManager> profile_manager;  };  | 
