From 8aeb42566968053d1a74f50f8453930cfdf2c42c Mon Sep 17 00:00:00 2001 From: fearlessTobi Date: Tue, 25 May 2021 20:48:02 -0400 Subject: configuration: Initial work to reset all settings This commit does not compile. Initial work to add and connect a Reset to Defaults button to the configure_general tab. Co-authored-by: german77 --- src/yuzu/configuration/configure_general.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/yuzu/configuration/configure_general.cpp') diff --git a/src/yuzu/configuration/configure_general.cpp b/src/yuzu/configuration/configure_general.cpp index 55a6a37bd..a107cd3e1 100644 --- a/src/yuzu/configuration/configure_general.cpp +++ b/src/yuzu/configuration/configure_general.cpp @@ -4,11 +4,13 @@ #include #include +#include #include "common/settings.h" #include "core/core.h" #include "ui_configure_general.h" #include "yuzu/configuration/configuration_shared.h" #include "yuzu/configuration/configure_general.h" +#include "yuzu/configuration/config.h" #include "yuzu/uisettings.h" ConfigureGeneral::ConfigureGeneral(QWidget* parent) @@ -23,6 +25,9 @@ ConfigureGeneral::ConfigureGeneral(QWidget* parent) connect(ui->toggle_frame_limit, &QCheckBox::clicked, ui->frame_limit, [this]() { ui->frame_limit->setEnabled(ui->toggle_frame_limit->isChecked()); }); } + + connect(ui->button_reset_defaults, &QPushButton::clicked, this, + &ConfigureGeneral::ResetDefaults); } ConfigureGeneral::~ConfigureGeneral() = default; @@ -49,6 +54,15 @@ void ConfigureGeneral::SetConfiguration() { } } +void ConfigureGeneral::ResetDefaults() { + QMessageBox::StandardButton answer = QMessageBox::question( + this, tr("yuzu"), tr("Are you sure you want to reset your settings?"), + QMessageBox::Yes | QMessageBox::No, QMessageBox::No); + if (answer == QMessageBox::No) + return; + UISettings::values. +} + void ConfigureGeneral::ApplyConfiguration() { ConfigurationShared::ApplyPerGameSetting(&Settings::values.use_multi_core, ui->use_multi_core, use_multi_core); -- cgit v1.2.3 From 4a3d57e469c5604631b5768c4fa917f199ce7854 Mon Sep 17 00:00:00 2001 From: lat9nq <22451773+lat9nq@users.noreply.github.com> Date: Tue, 25 May 2021 20:49:42 -0400 Subject: yuzu: Add settings reset button to general configuration Builds on german77's work to reset all settings back to their defaults. This include UISettings and Settings values structs, but does not affect save profiles, input profiles, and game directories. This works from a button input in configure_general. When activated, it calls a callback to close the whole configure dialog, then GMainWindow deletes the old configuration, both on disk and in memory, and reinitalizes a new one. It also resets a portion of the UI and calls the telemetry window prompt. --- src/yuzu/configuration/configure_general.cpp | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) (limited to 'src/yuzu/configuration/configure_general.cpp') diff --git a/src/yuzu/configuration/configure_general.cpp b/src/yuzu/configuration/configure_general.cpp index a107cd3e1..28aaf47be 100644 --- a/src/yuzu/configuration/configure_general.cpp +++ b/src/yuzu/configuration/configure_general.cpp @@ -3,14 +3,14 @@ // Refer to the license.txt file included. #include -#include #include +#include #include "common/settings.h" #include "core/core.h" #include "ui_configure_general.h" +#include "yuzu/configuration/config.h" #include "yuzu/configuration/configuration_shared.h" #include "yuzu/configuration/configure_general.h" -#include "yuzu/configuration/config.h" #include "yuzu/uisettings.h" ConfigureGeneral::ConfigureGeneral(QWidget* parent) @@ -46,6 +46,8 @@ void ConfigureGeneral::SetConfiguration() { ui->toggle_frame_limit->setChecked(Settings::values.use_frame_limit.GetValue()); ui->frame_limit->setValue(Settings::values.frame_limit.GetValue()); + ui->button_reset_defaults->setEnabled(runtime_lock); + if (Settings::IsConfiguringGlobal()) { ui->frame_limit->setEnabled(Settings::values.use_frame_limit.GetValue()); } else { @@ -54,13 +56,24 @@ void ConfigureGeneral::SetConfiguration() { } } +// Called to set the callback when resetting settings to defaults +void ConfigureGeneral::SetResetCallback(void (*callback)(ConfigureDialog*), + ConfigureDialog* param) { + ResetCallback = callback; + reset_callback_param = param; +} + void ConfigureGeneral::ResetDefaults() { QMessageBox::StandardButton answer = QMessageBox::question( - this, tr("yuzu"), tr("Are you sure you want to reset your settings?"), + this, tr("yuzu"), + tr("This reset all settings and remove all per-game configurations. This will not delete " + "game directories, profiles, or input profiles. Proceed?"), QMessageBox::Yes | QMessageBox::No, QMessageBox::No); if (answer == QMessageBox::No) return; - UISettings::values. + UISettings::values.reset_to_defaults = true; + UISettings::values.is_game_list_reload_pending.exchange(true); + (*ResetCallback)(reset_callback_param); } void ConfigureGeneral::ApplyConfiguration() { @@ -119,6 +132,8 @@ void ConfigureGeneral::SetupPerGameUI() { ui->toggle_background_pause->setVisible(false); ui->toggle_hide_mouse->setVisible(false); + ui->button_reset_defaults->setVisible(false); + ConfigurationShared::SetColoredTristate(ui->toggle_frame_limit, Settings::values.use_frame_limit, use_frame_limit); ConfigurationShared::SetColoredTristate(ui->use_multi_core, Settings::values.use_multi_core, -- cgit v1.2.3 From c17e1bd7a8df8c26ca1334faec3e41ce239a5650 Mon Sep 17 00:00:00 2001 From: lat9nq <22451773+lat9nq@users.noreply.github.com> Date: Tue, 25 May 2021 22:14:55 -0400 Subject: yuzu qt: Use lambda and std::function for reset callback Also makes use of std::move, and performs a clang-format cleanup. This addresses review comments. Co-authored-by: LC --- src/yuzu/configuration/configure_general.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'src/yuzu/configuration/configure_general.cpp') diff --git a/src/yuzu/configuration/configure_general.cpp b/src/yuzu/configuration/configure_general.cpp index 28aaf47be..38edb4d8d 100644 --- a/src/yuzu/configuration/configure_general.cpp +++ b/src/yuzu/configuration/configure_general.cpp @@ -2,6 +2,8 @@ // Licensed under GPLv2 or any later version // Refer to the license.txt file included. +#include +#include #include #include #include @@ -57,10 +59,8 @@ void ConfigureGeneral::SetConfiguration() { } // Called to set the callback when resetting settings to defaults -void ConfigureGeneral::SetResetCallback(void (*callback)(ConfigureDialog*), - ConfigureDialog* param) { - ResetCallback = callback; - reset_callback_param = param; +void ConfigureGeneral::SetResetCallback(std::function callback) { + reset_callback = std::move(callback); } void ConfigureGeneral::ResetDefaults() { @@ -69,11 +69,12 @@ void ConfigureGeneral::ResetDefaults() { tr("This reset all settings and remove all per-game configurations. This will not delete " "game directories, profiles, or input profiles. Proceed?"), QMessageBox::Yes | QMessageBox::No, QMessageBox::No); - if (answer == QMessageBox::No) + if (answer == QMessageBox::No) { return; + } UISettings::values.reset_to_defaults = true; UISettings::values.is_game_list_reload_pending.exchange(true); - (*ResetCallback)(reset_callback_param); + reset_callback(); } void ConfigureGeneral::ApplyConfiguration() { -- cgit v1.2.3