diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/renderer_vulkan/renderer_vulkan.cpp | 13 | ||||
| -rw-r--r-- | src/yuzu/configuration/config.cpp | 58 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_debug.cpp | 2 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_filesystem.cpp | 2 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_general.cpp | 8 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_ui.cpp | 11 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_web.cpp | 2 | ||||
| -rw-r--r-- | src/yuzu/debugger/console.cpp | 4 | ||||
| -rw-r--r-- | src/yuzu/game_list.cpp | 3 | ||||
| -rw-r--r-- | src/yuzu/game_list_p.h | 15 | ||||
| -rw-r--r-- | src/yuzu/main.cpp | 37 | ||||
| -rw-r--r-- | src/yuzu/uisettings.h | 43 |
12 files changed, 107 insertions, 91 deletions
diff --git a/src/video_core/renderer_vulkan/renderer_vulkan.cpp b/src/video_core/renderer_vulkan/renderer_vulkan.cpp index 2bab2b4f5..bec3a81d9 100644 --- a/src/video_core/renderer_vulkan/renderer_vulkan.cpp +++ b/src/video_core/renderer_vulkan/renderer_vulkan.cpp | |||
| @@ -97,14 +97,19 @@ RendererVulkan::RendererVulkan(Core::TelemetrySession& telemetry_session_, | |||
| 97 | Core::Frontend::EmuWindow& emu_window, | 97 | Core::Frontend::EmuWindow& emu_window, |
| 98 | Core::Memory::Memory& cpu_memory_, Tegra::GPU& gpu_, | 98 | Core::Memory::Memory& cpu_memory_, Tegra::GPU& gpu_, |
| 99 | std::unique_ptr<Core::Frontend::GraphicsContext> context_) try | 99 | std::unique_ptr<Core::Frontend::GraphicsContext> context_) try |
| 100 | : RendererBase(emu_window, std::move(context_)), telemetry_session(telemetry_session_), | 100 | : RendererBase(emu_window, std::move(context_)), |
| 101 | cpu_memory(cpu_memory_), gpu(gpu_), library(OpenLibrary()), | 101 | telemetry_session(telemetry_session_), |
| 102 | cpu_memory(cpu_memory_), | ||
| 103 | gpu(gpu_), | ||
| 104 | library(OpenLibrary()), | ||
| 102 | instance(CreateInstance(library, dld, VK_API_VERSION_1_1, render_window.GetWindowInfo().type, | 105 | instance(CreateInstance(library, dld, VK_API_VERSION_1_1, render_window.GetWindowInfo().type, |
| 103 | true, Settings::values.renderer_debug.GetValue())), | 106 | true, Settings::values.renderer_debug.GetValue())), |
| 104 | debug_callback(Settings::values.renderer_debug ? CreateDebugCallback(instance) : nullptr), | 107 | debug_callback(Settings::values.renderer_debug ? CreateDebugCallback(instance) : nullptr), |
| 105 | surface(CreateSurface(instance, render_window)), | 108 | surface(CreateSurface(instance, render_window)), |
| 106 | device(CreateDevice(instance, dld, *surface)), memory_allocator(device, false), | 109 | device(CreateDevice(instance, dld, *surface)), |
| 107 | state_tracker(gpu), scheduler(device, state_tracker), | 110 | memory_allocator(device, false), |
| 111 | state_tracker(gpu), | ||
| 112 | scheduler(device, state_tracker), | ||
| 108 | swapchain(*surface, device, scheduler, render_window.GetFramebufferLayout().width, | 113 | swapchain(*surface, device, scheduler, render_window.GetFramebufferLayout().width, |
| 109 | render_window.GetFramebufferLayout().height, false), | 114 | render_window.GetFramebufferLayout().height, false), |
| 110 | blit_screen(cpu_memory, render_window, device, memory_allocator, swapchain, scheduler, | 115 | blit_screen(cpu_memory, render_window, device, memory_allocator, swapchain, scheduler, |
diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp index d36aaade2..0802b14a1 100644 --- a/src/yuzu/configuration/config.cpp +++ b/src/yuzu/configuration/config.cpp | |||
| @@ -272,7 +272,12 @@ void Config::Initialize(const std::string& config_name) { | |||
| 272 | } | 272 | } |
| 273 | } | 273 | } |
| 274 | 274 | ||
| 275 | // Explicity std::string definition: Qt can't implicitly convert a std::string to a QVariant, nor | 275 | /* {Read,Write}BasicSetting and WriteGlobalSetting templates must be defined here before their |
| 276 | * usages later in this file. This allows explicit definition of some types that don't work | ||
| 277 | * nicely with the general version. | ||
| 278 | */ | ||
| 279 | |||
| 280 | // Explicit std::string definition: Qt can't implicitly convert a std::string to a QVariant, nor | ||
| 276 | // can it implicitly convert a QVariant back to a {std::,Q}string | 281 | // can it implicitly convert a QVariant back to a {std::,Q}string |
| 277 | template <> | 282 | template <> |
| 278 | void Config::ReadBasicSetting(Settings::BasicSetting<std::string>& setting) { | 283 | void Config::ReadBasicSetting(Settings::BasicSetting<std::string>& setting) { |
| @@ -1375,8 +1380,7 @@ void Config::SaveRendererValues() { | |||
| 1375 | void Config::SaveScreenshotValues() { | 1380 | void Config::SaveScreenshotValues() { |
| 1376 | qt_config->beginGroup(QStringLiteral("Screenshots")); | 1381 | qt_config->beginGroup(QStringLiteral("Screenshots")); |
| 1377 | 1382 | ||
| 1378 | WriteSetting(QStringLiteral("enable_screenshot_save_as"), | 1383 | WriteBasicSetting(UISettings::values.enable_screenshot_save_as); |
| 1379 | UISettings::values.enable_screenshot_save_as); | ||
| 1380 | WriteSetting(QStringLiteral("screenshot_path"), | 1384 | WriteSetting(QStringLiteral("screenshot_path"), |
| 1381 | QString::fromStdString(FS::GetYuzuPathString(FS::YuzuPath::ScreenshotsDir))); | 1385 | QString::fromStdString(FS::GetYuzuPathString(FS::YuzuPath::ScreenshotsDir))); |
| 1382 | 1386 | ||
| @@ -1412,10 +1416,10 @@ void Config::SaveSystemValues() { | |||
| 1412 | WriteGlobalSetting(Settings::values.time_zone_index); | 1416 | WriteGlobalSetting(Settings::values.time_zone_index); |
| 1413 | 1417 | ||
| 1414 | WriteSetting(QStringLiteral("rng_seed_enabled"), | 1418 | WriteSetting(QStringLiteral("rng_seed_enabled"), |
| 1415 | Settings::values.rng_seed.GetValue(global).has_value(), | 1419 | Settings::values.rng_seed.GetValue(global).has_value(), false, |
| 1416 | Settings::values.rng_seed.UsingGlobal(), false); | 1420 | Settings::values.rng_seed.UsingGlobal()); |
| 1417 | WriteSetting(QStringLiteral("rng_seed"), Settings::values.rng_seed.GetValue(global).value_or(0), | 1421 | WriteSetting(QStringLiteral("rng_seed"), Settings::values.rng_seed.GetValue(global).value_or(0), |
| 1418 | Settings::values.rng_seed.UsingGlobal(), 0); | 1422 | 0, Settings::values.rng_seed.UsingGlobal()); |
| 1419 | 1423 | ||
| 1420 | if (global) { | 1424 | if (global) { |
| 1421 | WriteSetting(QStringLiteral("custom_rtc_enabled"), Settings::values.custom_rtc.has_value(), | 1425 | WriteSetting(QStringLiteral("custom_rtc_enabled"), Settings::values.custom_rtc.has_value(), |
| @@ -1436,10 +1440,8 @@ void Config::SaveUIValues() { | |||
| 1436 | 1440 | ||
| 1437 | WriteSetting(QStringLiteral("theme"), UISettings::values.theme, | 1441 | WriteSetting(QStringLiteral("theme"), UISettings::values.theme, |
| 1438 | QString::fromUtf8(UISettings::themes[0].second)); | 1442 | QString::fromUtf8(UISettings::themes[0].second)); |
| 1439 | WriteSetting(QStringLiteral("enable_discord_presence"), | 1443 | WriteBasicSetting(UISettings::values.enable_discord_presence); |
| 1440 | UISettings::values.enable_discord_presence, true); | 1444 | WriteBasicSetting(UISettings::values.select_user_on_boot); |
| 1441 | WriteSetting(QStringLiteral("select_user_on_boot"), UISettings::values.select_user_on_boot, | ||
| 1442 | false); | ||
| 1443 | 1445 | ||
| 1444 | SaveUIGamelistValues(); | 1446 | SaveUIGamelistValues(); |
| 1445 | SaveUILayoutValues(); | 1447 | SaveUILayoutValues(); |
| @@ -1447,18 +1449,17 @@ void Config::SaveUIValues() { | |||
| 1447 | SaveScreenshotValues(); | 1449 | SaveScreenshotValues(); |
| 1448 | SaveShortcutValues(); | 1450 | SaveShortcutValues(); |
| 1449 | 1451 | ||
| 1450 | WriteSetting(QStringLiteral("singleWindowMode"), UISettings::values.single_window_mode, true); | 1452 | WriteBasicSetting(UISettings::values.single_window_mode); |
| 1451 | WriteSetting(QStringLiteral("fullscreen"), UISettings::values.fullscreen, false); | 1453 | WriteBasicSetting(UISettings::values.fullscreen); |
| 1452 | WriteSetting(QStringLiteral("displayTitleBars"), UISettings::values.display_titlebar, true); | 1454 | WriteBasicSetting(UISettings::values.display_titlebar); |
| 1453 | WriteSetting(QStringLiteral("showFilterBar"), UISettings::values.show_filter_bar, true); | 1455 | WriteBasicSetting(UISettings::values.show_filter_bar); |
| 1454 | WriteSetting(QStringLiteral("showStatusBar"), UISettings::values.show_status_bar, true); | 1456 | WriteBasicSetting(UISettings::values.show_status_bar); |
| 1455 | WriteSetting(QStringLiteral("confirmClose"), UISettings::values.confirm_before_closing, true); | 1457 | WriteBasicSetting(UISettings::values.confirm_before_closing); |
| 1456 | WriteSetting(QStringLiteral("firstStart"), UISettings::values.first_start, true); | 1458 | WriteBasicSetting(UISettings::values.first_start); |
| 1457 | WriteSetting(QStringLiteral("calloutFlags"), UISettings::values.callout_flags, 0); | 1459 | WriteBasicSetting(UISettings::values.callout_flags); |
| 1458 | WriteSetting(QStringLiteral("showConsole"), UISettings::values.show_console, false); | 1460 | WriteBasicSetting(UISettings::values.show_console); |
| 1459 | WriteSetting(QStringLiteral("pauseWhenInBackground"), | 1461 | WriteBasicSetting(UISettings::values.pause_when_in_background); |
| 1460 | UISettings::values.pause_when_in_background, false); | 1462 | WriteBasicSetting(UISettings::values.hide_mouse); |
| 1461 | WriteSetting(QStringLiteral("hideInactiveMouse"), UISettings::values.hide_mouse, false); | ||
| 1462 | 1463 | ||
| 1463 | qt_config->endGroup(); | 1464 | qt_config->endGroup(); |
| 1464 | } | 1465 | } |
| @@ -1466,11 +1467,11 @@ void Config::SaveUIValues() { | |||
| 1466 | void Config::SaveUIGamelistValues() { | 1467 | void Config::SaveUIGamelistValues() { |
| 1467 | qt_config->beginGroup(QStringLiteral("UIGameList")); | 1468 | qt_config->beginGroup(QStringLiteral("UIGameList")); |
| 1468 | 1469 | ||
| 1469 | WriteSetting(QStringLiteral("show_add_ons"), UISettings::values.show_add_ons, true); | 1470 | WriteBasicSetting(UISettings::values.show_add_ons); |
| 1470 | WriteSetting(QStringLiteral("icon_size"), UISettings::values.icon_size, 64); | 1471 | WriteBasicSetting(UISettings::values.icon_size); |
| 1471 | WriteSetting(QStringLiteral("row_1_text_id"), UISettings::values.row_1_text_id, 3); | 1472 | WriteBasicSetting(UISettings::values.row_1_text_id); |
| 1472 | WriteSetting(QStringLiteral("row_2_text_id"), UISettings::values.row_2_text_id, 2); | 1473 | WriteBasicSetting(UISettings::values.row_2_text_id); |
| 1473 | WriteSetting(QStringLiteral("cache_game_list"), UISettings::values.cache_game_list, true); | 1474 | WriteBasicSetting(UISettings::values.cache_game_list); |
| 1474 | qt_config->beginWriteArray(QStringLiteral("favorites")); | 1475 | qt_config->beginWriteArray(QStringLiteral("favorites")); |
| 1475 | for (int i = 0; i < UISettings::values.favorited_ids.size(); i++) { | 1476 | for (int i = 0; i < UISettings::values.favorited_ids.size(); i++) { |
| 1476 | qt_config->setArrayIndex(i); | 1477 | qt_config->setArrayIndex(i); |
| @@ -1491,8 +1492,7 @@ void Config::SaveUILayoutValues() { | |||
| 1491 | WriteSetting(QStringLiteral("gameListHeaderState"), UISettings::values.gamelist_header_state); | 1492 | WriteSetting(QStringLiteral("gameListHeaderState"), UISettings::values.gamelist_header_state); |
| 1492 | WriteSetting(QStringLiteral("microProfileDialogGeometry"), | 1493 | WriteSetting(QStringLiteral("microProfileDialogGeometry"), |
| 1493 | UISettings::values.microprofile_geometry); | 1494 | UISettings::values.microprofile_geometry); |
| 1494 | WriteSetting(QStringLiteral("microProfileDialogVisible"), | 1495 | WriteBasicSetting(UISettings::values.microprofile_visible); |
| 1495 | UISettings::values.microprofile_visible, false); | ||
| 1496 | 1496 | ||
| 1497 | qt_config->endGroup(); | 1497 | qt_config->endGroup(); |
| 1498 | } | 1498 | } |
diff --git a/src/yuzu/configuration/configure_debug.cpp b/src/yuzu/configuration/configure_debug.cpp index 7d15d54b8..cbe45a305 100644 --- a/src/yuzu/configuration/configure_debug.cpp +++ b/src/yuzu/configuration/configure_debug.cpp | |||
| @@ -31,7 +31,7 @@ void ConfigureDebug::SetConfiguration() { | |||
| 31 | const bool runtime_lock = !Core::System::GetInstance().IsPoweredOn(); | 31 | const bool runtime_lock = !Core::System::GetInstance().IsPoweredOn(); |
| 32 | 32 | ||
| 33 | ui->toggle_console->setEnabled(runtime_lock); | 33 | ui->toggle_console->setEnabled(runtime_lock); |
| 34 | ui->toggle_console->setChecked(UISettings::values.show_console); | 34 | ui->toggle_console->setChecked(UISettings::values.show_console.GetValue()); |
| 35 | ui->log_filter_edit->setText(QString::fromStdString(Settings::values.log_filter.GetValue())); | 35 | ui->log_filter_edit->setText(QString::fromStdString(Settings::values.log_filter.GetValue())); |
| 36 | ui->homebrew_args_edit->setText( | 36 | ui->homebrew_args_edit->setText( |
| 37 | QString::fromStdString(Settings::values.program_args.GetValue())); | 37 | QString::fromStdString(Settings::values.program_args.GetValue())); |
diff --git a/src/yuzu/configuration/configure_filesystem.cpp b/src/yuzu/configuration/configure_filesystem.cpp index d0b5c6efe..9cb317822 100644 --- a/src/yuzu/configuration/configure_filesystem.cpp +++ b/src/yuzu/configuration/configure_filesystem.cpp | |||
| @@ -55,7 +55,7 @@ void ConfigureFilesystem::setConfiguration() { | |||
| 55 | ui->dump_exefs->setChecked(Settings::values.dump_exefs.GetValue()); | 55 | ui->dump_exefs->setChecked(Settings::values.dump_exefs.GetValue()); |
| 56 | ui->dump_nso->setChecked(Settings::values.dump_nso.GetValue()); | 56 | ui->dump_nso->setChecked(Settings::values.dump_nso.GetValue()); |
| 57 | 57 | ||
| 58 | ui->cache_game_list->setChecked(UISettings::values.cache_game_list); | 58 | ui->cache_game_list->setChecked(UISettings::values.cache_game_list.GetValue()); |
| 59 | 59 | ||
| 60 | UpdateEnabledControls(); | 60 | UpdateEnabledControls(); |
| 61 | } | 61 | } |
diff --git a/src/yuzu/configuration/configure_general.cpp b/src/yuzu/configuration/configure_general.cpp index 38edb4d8d..18f25def6 100644 --- a/src/yuzu/configuration/configure_general.cpp +++ b/src/yuzu/configuration/configure_general.cpp | |||
| @@ -40,10 +40,10 @@ void ConfigureGeneral::SetConfiguration() { | |||
| 40 | ui->use_multi_core->setEnabled(runtime_lock); | 40 | ui->use_multi_core->setEnabled(runtime_lock); |
| 41 | ui->use_multi_core->setChecked(Settings::values.use_multi_core.GetValue()); | 41 | ui->use_multi_core->setChecked(Settings::values.use_multi_core.GetValue()); |
| 42 | 42 | ||
| 43 | ui->toggle_check_exit->setChecked(UISettings::values.confirm_before_closing); | 43 | ui->toggle_check_exit->setChecked(UISettings::values.confirm_before_closing.GetValue()); |
| 44 | ui->toggle_user_on_boot->setChecked(UISettings::values.select_user_on_boot); | 44 | ui->toggle_user_on_boot->setChecked(UISettings::values.select_user_on_boot.GetValue()); |
| 45 | ui->toggle_background_pause->setChecked(UISettings::values.pause_when_in_background); | 45 | ui->toggle_background_pause->setChecked(UISettings::values.pause_when_in_background.GetValue()); |
| 46 | ui->toggle_hide_mouse->setChecked(UISettings::values.hide_mouse); | 46 | ui->toggle_hide_mouse->setChecked(UISettings::values.hide_mouse.GetValue()); |
| 47 | 47 | ||
| 48 | ui->toggle_frame_limit->setChecked(Settings::values.use_frame_limit.GetValue()); | 48 | ui->toggle_frame_limit->setChecked(Settings::values.use_frame_limit.GetValue()); |
| 49 | ui->frame_limit->setValue(Settings::values.frame_limit.GetValue()); | 49 | ui->frame_limit->setValue(Settings::values.frame_limit.GetValue()); |
diff --git a/src/yuzu/configuration/configure_ui.cpp b/src/yuzu/configuration/configure_ui.cpp index 9674119e1..e8f41bf65 100644 --- a/src/yuzu/configuration/configure_ui.cpp +++ b/src/yuzu/configuration/configure_ui.cpp | |||
| @@ -113,11 +113,12 @@ void ConfigureUi::SetConfiguration() { | |||
| 113 | ui->theme_combobox->setCurrentIndex(ui->theme_combobox->findData(UISettings::values.theme)); | 113 | ui->theme_combobox->setCurrentIndex(ui->theme_combobox->findData(UISettings::values.theme)); |
| 114 | ui->language_combobox->setCurrentIndex( | 114 | ui->language_combobox->setCurrentIndex( |
| 115 | ui->language_combobox->findData(UISettings::values.language)); | 115 | ui->language_combobox->findData(UISettings::values.language)); |
| 116 | ui->show_add_ons->setChecked(UISettings::values.show_add_ons); | 116 | ui->show_add_ons->setChecked(UISettings::values.show_add_ons.GetValue()); |
| 117 | ui->icon_size_combobox->setCurrentIndex( | 117 | ui->icon_size_combobox->setCurrentIndex( |
| 118 | ui->icon_size_combobox->findData(UISettings::values.icon_size)); | 118 | ui->icon_size_combobox->findData(UISettings::values.icon_size.GetValue())); |
| 119 | 119 | ||
| 120 | ui->enable_screenshot_save_as->setChecked(UISettings::values.enable_screenshot_save_as); | 120 | ui->enable_screenshot_save_as->setChecked( |
| 121 | UISettings::values.enable_screenshot_save_as.GetValue()); | ||
| 121 | ui->screenshot_path_edit->setText(QString::fromStdString( | 122 | ui->screenshot_path_edit->setText(QString::fromStdString( |
| 122 | Common::FS::GetYuzuPathString(Common::FS::YuzuPath::ScreenshotsDir))); | 123 | Common::FS::GetYuzuPathString(Common::FS::YuzuPath::ScreenshotsDir))); |
| 123 | } | 124 | } |
| @@ -178,7 +179,7 @@ void ConfigureUi::InitializeRowComboBoxes() { | |||
| 178 | 179 | ||
| 179 | void ConfigureUi::UpdateFirstRowComboBox(bool init) { | 180 | void ConfigureUi::UpdateFirstRowComboBox(bool init) { |
| 180 | const int currentIndex = | 181 | const int currentIndex = |
| 181 | init ? UISettings::values.row_1_text_id | 182 | init ? UISettings::values.row_1_text_id.GetValue() |
| 182 | : ui->row_1_text_combobox->findData(ui->row_1_text_combobox->currentData()); | 183 | : ui->row_1_text_combobox->findData(ui->row_1_text_combobox->currentData()); |
| 183 | 184 | ||
| 184 | ui->row_1_text_combobox->clear(); | 185 | ui->row_1_text_combobox->clear(); |
| @@ -197,7 +198,7 @@ void ConfigureUi::UpdateFirstRowComboBox(bool init) { | |||
| 197 | 198 | ||
| 198 | void ConfigureUi::UpdateSecondRowComboBox(bool init) { | 199 | void ConfigureUi::UpdateSecondRowComboBox(bool init) { |
| 199 | const int currentIndex = | 200 | const int currentIndex = |
| 200 | init ? UISettings::values.row_2_text_id | 201 | init ? UISettings::values.row_2_text_id.GetValue() |
| 201 | : ui->row_2_text_combobox->findData(ui->row_2_text_combobox->currentData()); | 202 | : ui->row_2_text_combobox->findData(ui->row_2_text_combobox->currentData()); |
| 202 | 203 | ||
| 203 | ui->row_2_text_combobox->clear(); | 204 | ui->row_2_text_combobox->clear(); |
diff --git a/src/yuzu/configuration/configure_web.cpp b/src/yuzu/configuration/configure_web.cpp index 0fd76dc2c..d779251b4 100644 --- a/src/yuzu/configuration/configure_web.cpp +++ b/src/yuzu/configuration/configure_web.cpp | |||
| @@ -103,7 +103,7 @@ void ConfigureWeb::SetConfiguration() { | |||
| 103 | 103 | ||
| 104 | user_verified = true; | 104 | user_verified = true; |
| 105 | 105 | ||
| 106 | ui->toggle_discordrpc->setChecked(UISettings::values.enable_discord_presence); | 106 | ui->toggle_discordrpc->setChecked(UISettings::values.enable_discord_presence.GetValue()); |
| 107 | } | 107 | } |
| 108 | 108 | ||
| 109 | void ConfigureWeb::ApplyConfiguration() { | 109 | void ConfigureWeb::ApplyConfiguration() { |
diff --git a/src/yuzu/debugger/console.cpp b/src/yuzu/debugger/console.cpp index c11a326ac..22ca1285d 100644 --- a/src/yuzu/debugger/console.cpp +++ b/src/yuzu/debugger/console.cpp | |||
| @@ -15,10 +15,10 @@ | |||
| 15 | namespace Debugger { | 15 | namespace Debugger { |
| 16 | void ToggleConsole() { | 16 | void ToggleConsole() { |
| 17 | static bool console_shown = false; | 17 | static bool console_shown = false; |
| 18 | if (console_shown == UISettings::values.show_console) { | 18 | if (console_shown == UISettings::values.show_console.GetValue()) { |
| 19 | return; | 19 | return; |
| 20 | } else { | 20 | } else { |
| 21 | console_shown = UISettings::values.show_console; | 21 | console_shown = UISettings::values.show_console.GetValue(); |
| 22 | } | 22 | } |
| 23 | 23 | ||
| 24 | #if defined(_WIN32) && !defined(_DEBUG) | 24 | #if defined(_WIN32) && !defined(_DEBUG) |
diff --git a/src/yuzu/game_list.cpp b/src/yuzu/game_list.cpp index da956c99b..9c5aeb833 100644 --- a/src/yuzu/game_list.cpp +++ b/src/yuzu/game_list.cpp | |||
| @@ -244,7 +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 = std::min(static_cast<int>(UISettings::values.icon_size), 64); | 247 | const int icon_size = |
| 248 | std::min(static_cast<int>(UISettings::values.icon_size.GetValue()), 64); | ||
| 248 | switch (child->data(GameListItem::TypeRole).value<GameListItemType>()) { | 249 | switch (child->data(GameListItem::TypeRole).value<GameListItemType>()) { |
| 249 | case GameListItemType::SdmcDir: | 250 | case GameListItemType::SdmcDir: |
| 250 | child->setData( | 251 | child->setData( |
diff --git a/src/yuzu/game_list_p.h b/src/yuzu/game_list_p.h index 978d27325..982c0789d 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; | 83 | const u32 size = UISettings::values.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()))) { |
| @@ -108,8 +108,8 @@ public: | |||
| 108 | data(TitleRole).toString(), | 108 | data(TitleRole).toString(), |
| 109 | }}; | 109 | }}; |
| 110 | 110 | ||
| 111 | const auto& row1 = row_data.at(UISettings::values.row_1_text_id); | 111 | const auto& row1 = row_data.at(UISettings::values.row_1_text_id.GetValue()); |
| 112 | const int row2_id = UISettings::values.row_2_text_id; | 112 | const int row2_id = UISettings::values.row_2_text_id.GetValue(); |
| 113 | 113 | ||
| 114 | if (role == SortRole) { | 114 | if (role == SortRole) { |
| 115 | return row1.toLower(); | 115 | return row1.toLower(); |
| @@ -233,7 +233,8 @@ 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 = std::min(static_cast<int>(UISettings::values.icon_size), 64); | 236 | const int icon_size = |
| 237 | std::min(static_cast<int>(UISettings::values.icon_size.GetValue()), 64); | ||
| 237 | switch (dir_type) { | 238 | switch (dir_type) { |
| 238 | case GameListItemType::SdmcDir: | 239 | case GameListItemType::SdmcDir: |
| 239 | setData( | 240 | setData( |
| @@ -294,7 +295,8 @@ public: | |||
| 294 | explicit GameListAddDir() { | 295 | explicit GameListAddDir() { |
| 295 | setData(type(), TypeRole); | 296 | setData(type(), TypeRole); |
| 296 | 297 | ||
| 297 | const int icon_size = std::min(static_cast<int>(UISettings::values.icon_size), 64); | 298 | const int icon_size = |
| 299 | std::min(static_cast<int>(UISettings::values.icon_size.GetValue()), 64); | ||
| 298 | setData(QIcon::fromTheme(QStringLiteral("plus")) | 300 | setData(QIcon::fromTheme(QStringLiteral("plus")) |
| 299 | .pixmap(icon_size) | 301 | .pixmap(icon_size) |
| 300 | .scaled(icon_size, icon_size, Qt::IgnoreAspectRatio, Qt::SmoothTransformation), | 302 | .scaled(icon_size, icon_size, Qt::IgnoreAspectRatio, Qt::SmoothTransformation), |
| @@ -316,7 +318,8 @@ public: | |||
| 316 | explicit GameListFavorites() { | 318 | explicit GameListFavorites() { |
| 317 | setData(type(), TypeRole); | 319 | setData(type(), TypeRole); |
| 318 | 320 | ||
| 319 | const int icon_size = std::min(static_cast<int>(UISettings::values.icon_size), 64); | 321 | const int icon_size = |
| 322 | std::min(static_cast<int>(UISettings::values.icon_size.GetValue()), 64); | ||
| 320 | setData(QIcon::fromTheme(QStringLiteral("star")) | 323 | setData(QIcon::fromTheme(QStringLiteral("star")) |
| 321 | .pixmap(icon_size) | 324 | .pixmap(icon_size) |
| 322 | .scaled(icon_size, icon_size, Qt::IgnoreAspectRatio, Qt::SmoothTransformation), | 325 | .scaled(icon_size, icon_size, Qt::IgnoreAspectRatio, Qt::SmoothTransformation), |
diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp index d9375fc77..cb9d7a863 100644 --- a/src/yuzu/main.cpp +++ b/src/yuzu/main.cpp | |||
| @@ -155,11 +155,13 @@ enum class CalloutFlag : uint32_t { | |||
| 155 | }; | 155 | }; |
| 156 | 156 | ||
| 157 | void GMainWindow::ShowTelemetryCallout() { | 157 | void GMainWindow::ShowTelemetryCallout() { |
| 158 | if (UISettings::values.callout_flags & static_cast<uint32_t>(CalloutFlag::Telemetry)) { | 158 | if (UISettings::values.callout_flags.GetValue() & |
| 159 | static_cast<uint32_t>(CalloutFlag::Telemetry)) { | ||
| 159 | return; | 160 | return; |
| 160 | } | 161 | } |
| 161 | 162 | ||
| 162 | UISettings::values.callout_flags |= static_cast<uint32_t>(CalloutFlag::Telemetry); | 163 | UISettings::values.callout_flags = |
| 164 | UISettings::values.callout_flags.GetValue() | static_cast<uint32_t>(CalloutFlag::Telemetry); | ||
| 163 | const QString telemetry_message = | 165 | const QString telemetry_message = |
| 164 | tr("<a href='https://yuzu-emu.org/help/feature/telemetry/'>Anonymous " | 166 | tr("<a href='https://yuzu-emu.org/help/feature/telemetry/'>Anonymous " |
| 165 | "data is collected</a> to help improve yuzu. " | 167 | "data is collected</a> to help improve yuzu. " |
| @@ -215,7 +217,7 @@ GMainWindow::GMainWindow() | |||
| 215 | default_theme_paths = QIcon::themeSearchPaths(); | 217 | default_theme_paths = QIcon::themeSearchPaths(); |
| 216 | UpdateUITheme(); | 218 | UpdateUITheme(); |
| 217 | 219 | ||
| 218 | SetDiscordEnabled(UISettings::values.enable_discord_presence); | 220 | SetDiscordEnabled(UISettings::values.enable_discord_presence.GetValue()); |
| 219 | discord_rpc->Update(); | 221 | discord_rpc->Update(); |
| 220 | 222 | ||
| 221 | RegisterMetaTypes(); | 223 | RegisterMetaTypes(); |
| @@ -1059,23 +1061,24 @@ void GMainWindow::RestoreUIState() { | |||
| 1059 | render_window->restoreGeometry(UISettings::values.renderwindow_geometry); | 1061 | render_window->restoreGeometry(UISettings::values.renderwindow_geometry); |
| 1060 | #if MICROPROFILE_ENABLED | 1062 | #if MICROPROFILE_ENABLED |
| 1061 | microProfileDialog->restoreGeometry(UISettings::values.microprofile_geometry); | 1063 | microProfileDialog->restoreGeometry(UISettings::values.microprofile_geometry); |
| 1062 | microProfileDialog->setVisible(UISettings::values.microprofile_visible); | 1064 | microProfileDialog->setVisible(UISettings::values.microprofile_visible.GetValue()); |
| 1063 | #endif | 1065 | #endif |
| 1064 | 1066 | ||
| 1065 | game_list->LoadInterfaceLayout(); | 1067 | game_list->LoadInterfaceLayout(); |
| 1066 | 1068 | ||
| 1067 | ui.action_Single_Window_Mode->setChecked(UISettings::values.single_window_mode); | 1069 | ui.action_Single_Window_Mode->setChecked(UISettings::values.single_window_mode.GetValue()); |
| 1068 | ToggleWindowMode(); | 1070 | ToggleWindowMode(); |
| 1069 | 1071 | ||
| 1070 | ui.action_Fullscreen->setChecked(UISettings::values.fullscreen); | 1072 | ui.action_Fullscreen->setChecked(UISettings::values.fullscreen.GetValue()); |
| 1071 | 1073 | ||
| 1072 | ui.action_Display_Dock_Widget_Headers->setChecked(UISettings::values.display_titlebar); | 1074 | ui.action_Display_Dock_Widget_Headers->setChecked( |
| 1075 | UISettings::values.display_titlebar.GetValue()); | ||
| 1073 | OnDisplayTitleBars(ui.action_Display_Dock_Widget_Headers->isChecked()); | 1076 | OnDisplayTitleBars(ui.action_Display_Dock_Widget_Headers->isChecked()); |
| 1074 | 1077 | ||
| 1075 | ui.action_Show_Filter_Bar->setChecked(UISettings::values.show_filter_bar); | 1078 | ui.action_Show_Filter_Bar->setChecked(UISettings::values.show_filter_bar.GetValue()); |
| 1076 | game_list->SetFilterVisible(ui.action_Show_Filter_Bar->isChecked()); | 1079 | game_list->SetFilterVisible(ui.action_Show_Filter_Bar->isChecked()); |
| 1077 | 1080 | ||
| 1078 | ui.action_Show_Status_Bar->setChecked(UISettings::values.show_status_bar); | 1081 | ui.action_Show_Status_Bar->setChecked(UISettings::values.show_status_bar.GetValue()); |
| 1079 | statusBar()->setVisible(ui.action_Show_Status_Bar->isChecked()); | 1082 | statusBar()->setVisible(ui.action_Show_Status_Bar->isChecked()); |
| 1080 | Debugger::ToggleConsole(); | 1083 | Debugger::ToggleConsole(); |
| 1081 | } | 1084 | } |
| @@ -1242,13 +1245,14 @@ bool GMainWindow::LoadROM(const QString& filename, std::size_t program_index) { | |||
| 1242 | const Core::System::ResultStatus result{ | 1245 | const Core::System::ResultStatus result{ |
| 1243 | system.Load(*render_window, filename.toStdString(), program_index)}; | 1246 | system.Load(*render_window, filename.toStdString(), program_index)}; |
| 1244 | 1247 | ||
| 1245 | const auto drd_callout = | 1248 | const auto drd_callout = (UISettings::values.callout_flags.GetValue() & |
| 1246 | (UISettings::values.callout_flags & static_cast<u32>(CalloutFlag::DRDDeprecation)) == 0; | 1249 | static_cast<u32>(CalloutFlag::DRDDeprecation)) == 0; |
| 1247 | 1250 | ||
| 1248 | if (result == Core::System::ResultStatus::Success && | 1251 | if (result == Core::System::ResultStatus::Success && |
| 1249 | system.GetAppLoader().GetFileType() == Loader::FileType::DeconstructedRomDirectory && | 1252 | system.GetAppLoader().GetFileType() == Loader::FileType::DeconstructedRomDirectory && |
| 1250 | drd_callout) { | 1253 | drd_callout) { |
| 1251 | UISettings::values.callout_flags |= static_cast<u32>(CalloutFlag::DRDDeprecation); | 1254 | UISettings::values.callout_flags = UISettings::values.callout_flags.GetValue() | |
| 1255 | static_cast<u32>(CalloutFlag::DRDDeprecation); | ||
| 1252 | QMessageBox::warning( | 1256 | QMessageBox::warning( |
| 1253 | this, tr("Warning Outdated Game Format"), | 1257 | this, tr("Warning Outdated Game Format"), |
| 1254 | tr("You are using the deconstructed ROM directory format for this game, which is an " | 1258 | tr("You are using the deconstructed ROM directory format for this game, which is an " |
| @@ -2609,7 +2613,7 @@ void GMainWindow::ResetWindowSize1080() { | |||
| 2609 | 2613 | ||
| 2610 | void GMainWindow::OnConfigure() { | 2614 | void GMainWindow::OnConfigure() { |
| 2611 | const auto old_theme = UISettings::values.theme; | 2615 | const auto old_theme = UISettings::values.theme; |
| 2612 | const bool old_discord_presence = UISettings::values.enable_discord_presence; | 2616 | const bool old_discord_presence = UISettings::values.enable_discord_presence.GetValue(); |
| 2613 | 2617 | ||
| 2614 | ConfigureDialog configure_dialog(this, hotkey_registry, input_subsystem.get()); | 2618 | ConfigureDialog configure_dialog(this, hotkey_registry, input_subsystem.get()); |
| 2615 | connect(&configure_dialog, &ConfigureDialog::LanguageChanged, this, | 2619 | connect(&configure_dialog, &ConfigureDialog::LanguageChanged, this, |
| @@ -2666,8 +2670,8 @@ void GMainWindow::OnConfigure() { | |||
| 2666 | if (UISettings::values.theme != old_theme) { | 2670 | if (UISettings::values.theme != old_theme) { |
| 2667 | UpdateUITheme(); | 2671 | UpdateUITheme(); |
| 2668 | } | 2672 | } |
| 2669 | if (UISettings::values.enable_discord_presence != old_discord_presence) { | 2673 | if (UISettings::values.enable_discord_presence.GetValue() != old_discord_presence) { |
| 2670 | SetDiscordEnabled(UISettings::values.enable_discord_presence); | 2674 | SetDiscordEnabled(UISettings::values.enable_discord_presence.GetValue()); |
| 2671 | } | 2675 | } |
| 2672 | emit UpdateThemedIcons(); | 2676 | emit UpdateThemedIcons(); |
| 2673 | 2677 | ||
| @@ -2823,7 +2827,8 @@ void GMainWindow::OnCaptureScreenshot() { | |||
| 2823 | } | 2827 | } |
| 2824 | } | 2828 | } |
| 2825 | #endif | 2829 | #endif |
| 2826 | render_window->CaptureScreenshot(UISettings::values.screenshot_resolution_factor, filename); | 2830 | render_window->CaptureScreenshot(UISettings::values.screenshot_resolution_factor.GetValue(), |
| 2831 | filename); | ||
| 2827 | OnStartGame(); | 2832 | OnStartGame(); |
| 2828 | } | 2833 | } |
| 2829 | 2834 | ||
diff --git a/src/yuzu/uisettings.h b/src/yuzu/uisettings.h index cdcb83f9f..7b9d2dd53 100644 --- a/src/yuzu/uisettings.h +++ b/src/yuzu/uisettings.h | |||
| @@ -13,6 +13,7 @@ | |||
| 13 | #include <QStringList> | 13 | #include <QStringList> |
| 14 | #include <QVector> | 14 | #include <QVector> |
| 15 | #include "common/common_types.h" | 15 | #include "common/common_types.h" |
| 16 | #include "common/settings.h" | ||
| 16 | 17 | ||
| 17 | namespace UISettings { | 18 | namespace UISettings { |
| 18 | 19 | ||
| @@ -48,26 +49,26 @@ struct Values { | |||
| 48 | QByteArray gamelist_header_state; | 49 | QByteArray gamelist_header_state; |
| 49 | 50 | ||
| 50 | QByteArray microprofile_geometry; | 51 | QByteArray microprofile_geometry; |
| 51 | bool microprofile_visible; | 52 | Settings::BasicSetting<bool> microprofile_visible{false, "microProfileDialogVisible"}; |
| 52 | 53 | ||
| 53 | bool single_window_mode; | 54 | Settings::BasicSetting<bool> single_window_mode{true, "singleWindowMode"}; |
| 54 | bool fullscreen; | 55 | Settings::BasicSetting<bool> fullscreen{false, "fullscreen"}; |
| 55 | bool display_titlebar; | 56 | Settings::BasicSetting<bool> display_titlebar{true, "displayTitleBars"}; |
| 56 | bool show_filter_bar; | 57 | Settings::BasicSetting<bool> show_filter_bar{true, "showFilterBar"}; |
| 57 | bool show_status_bar; | 58 | Settings::BasicSetting<bool> show_status_bar{true, "showStatusBar"}; |
| 58 | 59 | ||
| 59 | bool confirm_before_closing; | 60 | Settings::BasicSetting<bool> confirm_before_closing{true, "confirmClose"}; |
| 60 | bool first_start; | 61 | Settings::BasicSetting<bool> first_start{true, "firstStart"}; |
| 61 | bool pause_when_in_background; | 62 | Settings::BasicSetting<bool> pause_when_in_background{false, "pauseWhenInBackground"}; |
| 62 | bool hide_mouse; | 63 | Settings::BasicSetting<bool> hide_mouse{false, "hideInactiveMouse"}; |
| 63 | 64 | ||
| 64 | bool select_user_on_boot; | 65 | Settings::BasicSetting<bool> select_user_on_boot{false, "select_user_on_boot"}; |
| 65 | 66 | ||
| 66 | // Discord RPC | 67 | // Discord RPC |
| 67 | bool enable_discord_presence; | 68 | Settings::BasicSetting<bool> enable_discord_presence{true, "enable_discord_presence"}; |
| 68 | 69 | ||
| 69 | bool enable_screenshot_save_as; | 70 | Settings::BasicSetting<bool> enable_screenshot_save_as{true, "enable_screenshot_save_as"}; |
| 70 | u16 screenshot_resolution_factor; | 71 | Settings::BasicSetting<u16> screenshot_resolution_factor{0, "screenshot_resolution_factor"}; |
| 71 | 72 | ||
| 72 | QString roms_path; | 73 | QString roms_path; |
| 73 | QString symbols_path; | 74 | QString symbols_path; |
| @@ -83,18 +84,18 @@ struct Values { | |||
| 83 | // Shortcut name <Shortcut, context> | 84 | // Shortcut name <Shortcut, context> |
| 84 | std::vector<Shortcut> shortcuts; | 85 | std::vector<Shortcut> shortcuts; |
| 85 | 86 | ||
| 86 | uint32_t callout_flags; | 87 | Settings::BasicSetting<uint32_t> callout_flags{0, "calloutFlags"}; |
| 87 | 88 | ||
| 88 | // logging | 89 | // logging |
| 89 | bool show_console; | 90 | Settings::BasicSetting<bool> show_console{false, "showConsole"}; |
| 90 | 91 | ||
| 91 | // Game List | 92 | // Game List |
| 92 | bool show_add_ons; | 93 | Settings::BasicSetting<bool> show_add_ons{true, "show_add_ons"}; |
| 93 | uint32_t icon_size; | 94 | Settings::BasicSetting<uint32_t> icon_size{64, "icon_size"}; |
| 94 | uint8_t row_1_text_id; | 95 | Settings::BasicSetting<uint8_t> row_1_text_id{3, "row_1_text_id"}; |
| 95 | uint8_t row_2_text_id; | 96 | Settings::BasicSetting<uint8_t> row_2_text_id{2, "row_2_text_id"}; |
| 96 | std::atomic_bool is_game_list_reload_pending{false}; | 97 | std::atomic_bool is_game_list_reload_pending{false}; |
| 97 | bool cache_game_list; | 98 | Settings::BasicSetting<bool> cache_game_list{true, "cache_game_list"}; |
| 98 | 99 | ||
| 99 | bool configuration_applied; | 100 | bool configuration_applied; |
| 100 | bool reset_to_defaults; | 101 | bool reset_to_defaults; |