diff options
| -rw-r--r-- | src/yuzu/configuration/config.cpp | 6 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_ui.cpp | 50 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_ui.ui | 22 | ||||
| -rw-r--r-- | src/yuzu/game_list.cpp | 4 | ||||
| -rw-r--r-- | src/yuzu/game_list_p.h | 13 | ||||
| -rw-r--r-- | src/yuzu/uisettings.h | 3 |
6 files changed, 70 insertions, 28 deletions
diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp index f3b8787f5..2b20fca8a 100644 --- a/src/yuzu/configuration/config.cpp +++ b/src/yuzu/configuration/config.cpp | |||
| @@ -946,7 +946,8 @@ void Config::ReadUIGamelistValues() { | |||
| 946 | qt_config->beginGroup(QStringLiteral("UIGameList")); | 946 | qt_config->beginGroup(QStringLiteral("UIGameList")); |
| 947 | 947 | ||
| 948 | ReadBasicSetting(UISettings::values.show_add_ons); | 948 | ReadBasicSetting(UISettings::values.show_add_ons); |
| 949 | ReadBasicSetting(UISettings::values.icon_size); | 949 | ReadBasicSetting(UISettings::values.game_icon_size); |
| 950 | ReadBasicSetting(UISettings::values.folder_icon_size); | ||
| 950 | ReadBasicSetting(UISettings::values.row_1_text_id); | 951 | ReadBasicSetting(UISettings::values.row_1_text_id); |
| 951 | ReadBasicSetting(UISettings::values.row_2_text_id); | 952 | ReadBasicSetting(UISettings::values.row_2_text_id); |
| 952 | ReadBasicSetting(UISettings::values.cache_game_list); | 953 | ReadBasicSetting(UISettings::values.cache_game_list); |
| @@ -1463,7 +1464,8 @@ void Config::SaveUIGamelistValues() { | |||
| 1463 | qt_config->beginGroup(QStringLiteral("UIGameList")); | 1464 | qt_config->beginGroup(QStringLiteral("UIGameList")); |
| 1464 | 1465 | ||
| 1465 | WriteBasicSetting(UISettings::values.show_add_ons); | 1466 | WriteBasicSetting(UISettings::values.show_add_ons); |
| 1466 | WriteBasicSetting(UISettings::values.icon_size); | 1467 | WriteBasicSetting(UISettings::values.game_icon_size); |
| 1468 | WriteBasicSetting(UISettings::values.folder_icon_size); | ||
| 1467 | WriteBasicSetting(UISettings::values.row_1_text_id); | 1469 | WriteBasicSetting(UISettings::values.row_1_text_id); |
| 1468 | WriteBasicSetting(UISettings::values.row_2_text_id); | 1470 | WriteBasicSetting(UISettings::values.row_2_text_id); |
| 1469 | WriteBasicSetting(UISettings::values.cache_game_list); | 1471 | WriteBasicSetting(UISettings::values.cache_game_list); |
diff --git a/src/yuzu/configuration/configure_ui.cpp b/src/yuzu/configuration/configure_ui.cpp index e8f41bf65..9d7d51126 100644 --- a/src/yuzu/configuration/configure_ui.cpp +++ b/src/yuzu/configuration/configure_ui.cpp | |||
| @@ -16,7 +16,7 @@ | |||
| 16 | #include "yuzu/uisettings.h" | 16 | #include "yuzu/uisettings.h" |
| 17 | 17 | ||
| 18 | namespace { | 18 | namespace { |
| 19 | constexpr std::array default_icon_sizes{ | 19 | constexpr std::array default_game_icon_sizes{ |
| 20 | std::make_pair(0, QT_TRANSLATE_NOOP("ConfigureUI", "None")), | 20 | std::make_pair(0, QT_TRANSLATE_NOOP("ConfigureUI", "None")), |
| 21 | std::make_pair(32, QT_TRANSLATE_NOOP("ConfigureUI", "Small (32x32)")), | 21 | std::make_pair(32, QT_TRANSLATE_NOOP("ConfigureUI", "Small (32x32)")), |
| 22 | std::make_pair(64, QT_TRANSLATE_NOOP("ConfigureUI", "Standard (64x64)")), | 22 | std::make_pair(64, QT_TRANSLATE_NOOP("ConfigureUI", "Standard (64x64)")), |
| @@ -24,6 +24,13 @@ constexpr std::array default_icon_sizes{ | |||
| 24 | std::make_pair(256, QT_TRANSLATE_NOOP("ConfigureUI", "Full Size (256x256)")), | 24 | std::make_pair(256, QT_TRANSLATE_NOOP("ConfigureUI", "Full Size (256x256)")), |
| 25 | }; | 25 | }; |
| 26 | 26 | ||
| 27 | constexpr std::array default_folder_icon_sizes{ | ||
| 28 | std::make_pair(0, QT_TRANSLATE_NOOP("ConfigureUI", "None")), | ||
| 29 | std::make_pair(24, QT_TRANSLATE_NOOP("ConfigureUI", "Small (24x24)")), | ||
| 30 | std::make_pair(48, QT_TRANSLATE_NOOP("ConfigureUI", "Standard (48x48)")), | ||
| 31 | std::make_pair(72, QT_TRANSLATE_NOOP("ConfigureUI", "Large (72x72)")), | ||
| 32 | }; | ||
| 33 | |||
| 27 | // clang-format off | 34 | // clang-format off |
| 28 | constexpr std::array row_text_names{ | 35 | constexpr std::array row_text_names{ |
| 29 | QT_TRANSLATE_NOOP("ConfigureUI", "Filename"), | 36 | QT_TRANSLATE_NOOP("ConfigureUI", "Filename"), |
| @@ -34,8 +41,12 @@ constexpr std::array row_text_names{ | |||
| 34 | }; | 41 | }; |
| 35 | // clang-format on | 42 | // clang-format on |
| 36 | 43 | ||
| 37 | QString GetTranslatedIconSize(size_t index) { | 44 | QString GetTranslatedGameIconSize(size_t index) { |
| 38 | return QCoreApplication::translate("ConfigureUI", default_icon_sizes[index].second); | 45 | return QCoreApplication::translate("ConfigureUI", default_game_icon_sizes[index].second); |
| 46 | } | ||
| 47 | |||
| 48 | QString GetTranslatedFolderIconSize(size_t index) { | ||
| 49 | return QCoreApplication::translate("ConfigureUI", default_folder_icon_sizes[index].second); | ||
| 39 | } | 50 | } |
| 40 | 51 | ||
| 41 | QString GetTranslatedRowTextName(size_t index) { | 52 | QString GetTranslatedRowTextName(size_t index) { |
| @@ -60,8 +71,10 @@ ConfigureUi::ConfigureUi(QWidget* parent) : QWidget(parent), ui(new Ui::Configur | |||
| 60 | 71 | ||
| 61 | // Force game list reload if any of the relevant settings are changed. | 72 | // Force game list reload if any of the relevant settings are changed. |
| 62 | connect(ui->show_add_ons, &QCheckBox::stateChanged, this, &ConfigureUi::RequestGameListUpdate); | 73 | connect(ui->show_add_ons, &QCheckBox::stateChanged, this, &ConfigureUi::RequestGameListUpdate); |
| 63 | connect(ui->icon_size_combobox, QOverload<int>::of(&QComboBox::currentIndexChanged), this, | 74 | connect(ui->game_icon_size_combobox, QOverload<int>::of(&QComboBox::currentIndexChanged), this, |
| 64 | &ConfigureUi::RequestGameListUpdate); | 75 | &ConfigureUi::RequestGameListUpdate); |
| 76 | connect(ui->folder_icon_size_combobox, QOverload<int>::of(&QComboBox::currentIndexChanged), | ||
| 77 | this, &ConfigureUi::RequestGameListUpdate); | ||
| 65 | connect(ui->row_1_text_combobox, QOverload<int>::of(&QComboBox::currentIndexChanged), this, | 78 | connect(ui->row_1_text_combobox, QOverload<int>::of(&QComboBox::currentIndexChanged), this, |
| 66 | &ConfigureUi::RequestGameListUpdate); | 79 | &ConfigureUi::RequestGameListUpdate); |
| 67 | connect(ui->row_2_text_combobox, QOverload<int>::of(&QComboBox::currentIndexChanged), this, | 80 | connect(ui->row_2_text_combobox, QOverload<int>::of(&QComboBox::currentIndexChanged), this, |
| @@ -95,7 +108,8 @@ void ConfigureUi::ApplyConfiguration() { | |||
| 95 | UISettings::values.theme = | 108 | UISettings::values.theme = |
| 96 | ui->theme_combobox->itemData(ui->theme_combobox->currentIndex()).toString(); | 109 | ui->theme_combobox->itemData(ui->theme_combobox->currentIndex()).toString(); |
| 97 | UISettings::values.show_add_ons = ui->show_add_ons->isChecked(); | 110 | UISettings::values.show_add_ons = ui->show_add_ons->isChecked(); |
| 98 | UISettings::values.icon_size = ui->icon_size_combobox->currentData().toUInt(); | 111 | UISettings::values.game_icon_size = ui->game_icon_size_combobox->currentData().toUInt(); |
| 112 | UISettings::values.folder_icon_size = ui->folder_icon_size_combobox->currentData().toUInt(); | ||
| 99 | UISettings::values.row_1_text_id = ui->row_1_text_combobox->currentData().toUInt(); | 113 | UISettings::values.row_1_text_id = ui->row_1_text_combobox->currentData().toUInt(); |
| 100 | UISettings::values.row_2_text_id = ui->row_2_text_combobox->currentData().toUInt(); | 114 | UISettings::values.row_2_text_id = ui->row_2_text_combobox->currentData().toUInt(); |
| 101 | 115 | ||
| @@ -114,8 +128,10 @@ void ConfigureUi::SetConfiguration() { | |||
| 114 | ui->language_combobox->setCurrentIndex( | 128 | ui->language_combobox->setCurrentIndex( |
| 115 | ui->language_combobox->findData(UISettings::values.language)); | 129 | ui->language_combobox->findData(UISettings::values.language)); |
| 116 | ui->show_add_ons->setChecked(UISettings::values.show_add_ons.GetValue()); | 130 | ui->show_add_ons->setChecked(UISettings::values.show_add_ons.GetValue()); |
| 117 | ui->icon_size_combobox->setCurrentIndex( | 131 | ui->game_icon_size_combobox->setCurrentIndex( |
| 118 | ui->icon_size_combobox->findData(UISettings::values.icon_size.GetValue())); | 132 | ui->game_icon_size_combobox->findData(UISettings::values.game_icon_size.GetValue())); |
| 133 | ui->folder_icon_size_combobox->setCurrentIndex( | ||
| 134 | ui->folder_icon_size_combobox->findData(UISettings::values.folder_icon_size.GetValue())); | ||
| 119 | 135 | ||
| 120 | ui->enable_screenshot_save_as->setChecked( | 136 | ui->enable_screenshot_save_as->setChecked( |
| 121 | UISettings::values.enable_screenshot_save_as.GetValue()); | 137 | UISettings::values.enable_screenshot_save_as.GetValue()); |
| @@ -134,8 +150,14 @@ void ConfigureUi::changeEvent(QEvent* event) { | |||
| 134 | void ConfigureUi::RetranslateUI() { | 150 | void ConfigureUi::RetranslateUI() { |
| 135 | ui->retranslateUi(this); | 151 | ui->retranslateUi(this); |
| 136 | 152 | ||
| 137 | for (int i = 0; i < ui->icon_size_combobox->count(); i++) { | 153 | for (int i = 0; i < ui->game_icon_size_combobox->count(); i++) { |
| 138 | ui->icon_size_combobox->setItemText(i, GetTranslatedIconSize(static_cast<size_t>(i))); | 154 | ui->game_icon_size_combobox->setItemText(i, |
| 155 | GetTranslatedGameIconSize(static_cast<size_t>(i))); | ||
| 156 | } | ||
| 157 | |||
| 158 | for (int i = 0; i < ui->folder_icon_size_combobox->count(); i++) { | ||
| 159 | ui->folder_icon_size_combobox->setItemText( | ||
| 160 | i, GetTranslatedFolderIconSize(static_cast<size_t>(i))); | ||
| 139 | } | 161 | } |
| 140 | 162 | ||
| 141 | for (int i = 0; i < ui->row_1_text_combobox->count(); i++) { | 163 | for (int i = 0; i < ui->row_1_text_combobox->count(); i++) { |
| @@ -166,9 +188,13 @@ void ConfigureUi::InitializeLanguageComboBox() { | |||
| 166 | } | 188 | } |
| 167 | 189 | ||
| 168 | void ConfigureUi::InitializeIconSizeComboBox() { | 190 | void ConfigureUi::InitializeIconSizeComboBox() { |
| 169 | for (size_t i = 0; i < default_icon_sizes.size(); i++) { | 191 | for (size_t i = 0; i < default_game_icon_sizes.size(); i++) { |
| 170 | const auto size = default_icon_sizes[i].first; | 192 | const auto size = default_game_icon_sizes[i].first; |
| 171 | ui->icon_size_combobox->addItem(GetTranslatedIconSize(i), size); | 193 | ui->game_icon_size_combobox->addItem(GetTranslatedGameIconSize(i), size); |
| 194 | } | ||
| 195 | for (size_t i = 0; i < default_folder_icon_sizes.size(); i++) { | ||
| 196 | const auto size = default_folder_icon_sizes[i].first; | ||
| 197 | ui->folder_icon_size_combobox->addItem(GetTranslatedFolderIconSize(i), size); | ||
| 172 | } | 198 | } |
| 173 | } | 199 | } |
| 174 | 200 | ||
diff --git a/src/yuzu/configuration/configure_ui.ui b/src/yuzu/configuration/configure_ui.ui index d895b799f..394f9fe04 100644 --- a/src/yuzu/configuration/configure_ui.ui +++ b/src/yuzu/configuration/configure_ui.ui | |||
| @@ -81,16 +81,30 @@ | |||
| 81 | </widget> | 81 | </widget> |
| 82 | </item> | 82 | </item> |
| 83 | <item> | 83 | <item> |
| 84 | <layout class="QHBoxLayout" name="icon_size_qhbox_layout_2"> | 84 | <layout class="QHBoxLayout" name="game_icon_size_qhbox_layout_2"> |
| 85 | <item> | 85 | <item> |
| 86 | <widget class="QLabel" name="icon_size_label"> | 86 | <widget class="QLabel" name="game_icon_size_label"> |
| 87 | <property name="text"> | 87 | <property name="text"> |
| 88 | <string>Icon Size:</string> | 88 | <string>Game Icon Size:</string> |
| 89 | </property> | 89 | </property> |
| 90 | </widget> | 90 | </widget> |
| 91 | </item> | 91 | </item> |
| 92 | <item> | 92 | <item> |
| 93 | <widget class="QComboBox" name="icon_size_combobox"/> | 93 | <widget class="QComboBox" name="game_icon_size_combobox"/> |
| 94 | </item> | ||
| 95 | </layout> | ||
| 96 | </item> | ||
| 97 | <item> | ||
| 98 | <layout class="QHBoxLayout" name="folder_icon_size_qhbox_layout_2"> | ||
| 99 | <item> | ||
| 100 | <widget class="QLabel" name="folder_icon_size_label"> | ||
| 101 | <property name="text"> | ||
| 102 | <string>Folder Icon Size:</string> | ||
| 103 | </property> | ||
| 104 | </widget> | ||
| 105 | </item> | ||
| 106 | <item> | ||
| 107 | <widget class="QComboBox" name="folder_icon_size_combobox"/> | ||
| 94 | </item> | 108 | </item> |
| 95 | </layout> | 109 | </layout> |
| 96 | </item> | 110 | </item> |
diff --git a/src/yuzu/game_list.cpp b/src/yuzu/game_list.cpp index f746bd85d..e97804220 100644 --- a/src/yuzu/game_list.cpp +++ b/src/yuzu/game_list.cpp | |||
| @@ -244,8 +244,8 @@ void GameList::OnUpdateThemedIcons() { | |||
| 244 | for (int i = 0; i < item_model->invisibleRootItem()->rowCount(); i++) { | 244 | for (int i = 0; i < item_model->invisibleRootItem()->rowCount(); i++) { |
| 245 | QStandardItem* child = item_model->invisibleRootItem()->child(i); | 245 | QStandardItem* child = item_model->invisibleRootItem()->child(i); |
| 246 | 246 | ||
| 247 | const int icon_size = | 247 | const int icon_size = UISettings::values.folder_icon_size.GetValue(); |
| 248 | std::min(static_cast<int>(UISettings::values.icon_size.GetValue()), 64); | 248 | |
| 249 | switch (child->data(GameListItem::TypeRole).value<GameListItemType>()) { | 249 | switch (child->data(GameListItem::TypeRole).value<GameListItemType>()) { |
| 250 | case GameListItemType::SdmcDir: | 250 | case GameListItemType::SdmcDir: |
| 251 | child->setData( | 251 | child->setData( |
diff --git a/src/yuzu/game_list_p.h b/src/yuzu/game_list_p.h index 982c0789d..9dc3cc7c3 100644 --- a/src/yuzu/game_list_p.h +++ b/src/yuzu/game_list_p.h | |||
| @@ -80,7 +80,7 @@ public: | |||
| 80 | setData(qulonglong(program_id), ProgramIdRole); | 80 | setData(qulonglong(program_id), ProgramIdRole); |
| 81 | setData(game_type, FileTypeRole); | 81 | setData(game_type, FileTypeRole); |
| 82 | 82 | ||
| 83 | const u32 size = UISettings::values.icon_size.GetValue(); | 83 | const u32 size = UISettings::values.game_icon_size.GetValue(); |
| 84 | 84 | ||
| 85 | QPixmap picture; | 85 | QPixmap picture; |
| 86 | if (!picture.loadFromData(picture_data.data(), static_cast<u32>(picture_data.size()))) { | 86 | if (!picture.loadFromData(picture_data.data(), static_cast<u32>(picture_data.size()))) { |
| @@ -233,8 +233,7 @@ public: | |||
| 233 | UISettings::GameDir* game_dir = &directory; | 233 | UISettings::GameDir* game_dir = &directory; |
| 234 | setData(QVariant(UISettings::values.game_dirs.indexOf(directory)), GameDirRole); | 234 | setData(QVariant(UISettings::values.game_dirs.indexOf(directory)), GameDirRole); |
| 235 | 235 | ||
| 236 | const int icon_size = | 236 | const int icon_size = UISettings::values.folder_icon_size.GetValue(); |
| 237 | std::min(static_cast<int>(UISettings::values.icon_size.GetValue()), 64); | ||
| 238 | switch (dir_type) { | 237 | switch (dir_type) { |
| 239 | case GameListItemType::SdmcDir: | 238 | case GameListItemType::SdmcDir: |
| 240 | setData( | 239 | setData( |
| @@ -295,8 +294,8 @@ public: | |||
| 295 | explicit GameListAddDir() { | 294 | explicit GameListAddDir() { |
| 296 | setData(type(), TypeRole); | 295 | setData(type(), TypeRole); |
| 297 | 296 | ||
| 298 | const int icon_size = | 297 | const int icon_size = UISettings::values.folder_icon_size.GetValue(); |
| 299 | std::min(static_cast<int>(UISettings::values.icon_size.GetValue()), 64); | 298 | |
| 300 | setData(QIcon::fromTheme(QStringLiteral("plus")) | 299 | setData(QIcon::fromTheme(QStringLiteral("plus")) |
| 301 | .pixmap(icon_size) | 300 | .pixmap(icon_size) |
| 302 | .scaled(icon_size, icon_size, Qt::IgnoreAspectRatio, Qt::SmoothTransformation), | 301 | .scaled(icon_size, icon_size, Qt::IgnoreAspectRatio, Qt::SmoothTransformation), |
| @@ -318,8 +317,8 @@ public: | |||
| 318 | explicit GameListFavorites() { | 317 | explicit GameListFavorites() { |
| 319 | setData(type(), TypeRole); | 318 | setData(type(), TypeRole); |
| 320 | 319 | ||
| 321 | const int icon_size = | 320 | const int icon_size = UISettings::values.folder_icon_size.GetValue(); |
| 322 | std::min(static_cast<int>(UISettings::values.icon_size.GetValue()), 64); | 321 | |
| 323 | setData(QIcon::fromTheme(QStringLiteral("star")) | 322 | setData(QIcon::fromTheme(QStringLiteral("star")) |
| 324 | .pixmap(icon_size) | 323 | .pixmap(icon_size) |
| 325 | .scaled(icon_size, icon_size, Qt::IgnoreAspectRatio, Qt::SmoothTransformation), | 324 | .scaled(icon_size, icon_size, Qt::IgnoreAspectRatio, Qt::SmoothTransformation), |
diff --git a/src/yuzu/uisettings.h b/src/yuzu/uisettings.h index 7b9d2dd53..81f741f20 100644 --- a/src/yuzu/uisettings.h +++ b/src/yuzu/uisettings.h | |||
| @@ -91,7 +91,8 @@ struct Values { | |||
| 91 | 91 | ||
| 92 | // Game List | 92 | // Game List |
| 93 | Settings::BasicSetting<bool> show_add_ons{true, "show_add_ons"}; | 93 | Settings::BasicSetting<bool> show_add_ons{true, "show_add_ons"}; |
| 94 | Settings::BasicSetting<uint32_t> icon_size{64, "icon_size"}; | 94 | Settings::BasicSetting<uint32_t> game_icon_size{64, "game_icon_size"}; |
| 95 | Settings::BasicSetting<uint32_t> folder_icon_size{48, "folder_icon_size"}; | ||
| 95 | Settings::BasicSetting<uint8_t> row_1_text_id{3, "row_1_text_id"}; | 96 | Settings::BasicSetting<uint8_t> row_1_text_id{3, "row_1_text_id"}; |
| 96 | Settings::BasicSetting<uint8_t> row_2_text_id{2, "row_2_text_id"}; | 97 | Settings::BasicSetting<uint8_t> row_2_text_id{2, "row_2_text_id"}; |
| 97 | std::atomic_bool is_game_list_reload_pending{false}; | 98 | std::atomic_bool is_game_list_reload_pending{false}; |