summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/yuzu/configuration/config.cpp6
-rw-r--r--src/yuzu/configuration/configure_ui.cpp50
-rw-r--r--src/yuzu/configuration/configure_ui.ui22
-rw-r--r--src/yuzu/game_list.cpp4
-rw-r--r--src/yuzu/game_list_p.h13
-rw-r--r--src/yuzu/uisettings.h3
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
18namespace { 18namespace {
19constexpr std::array default_icon_sizes{ 19constexpr 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
27constexpr 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
28constexpr std::array row_text_names{ 35constexpr 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
37QString GetTranslatedIconSize(size_t index) { 44QString 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
48QString GetTranslatedFolderIconSize(size_t index) {
49 return QCoreApplication::translate("ConfigureUI", default_folder_icon_sizes[index].second);
39} 50}
40 51
41QString GetTranslatedRowTextName(size_t index) { 52QString 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) {
134void ConfigureUi::RetranslateUI() { 150void 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
168void ConfigureUi::InitializeIconSizeComboBox() { 190void 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};