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: [PATCH] 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_dialog.cpp | 6 +----- src/yuzu/configuration/configure_general.cpp | 13 +++++++------ src/yuzu/configuration/configure_general.h | 6 +++--- src/yuzu/main.cpp | 11 ++++++----- 4 files changed, 17 insertions(+), 19 deletions(-) diff --git a/src/yuzu/configuration/configure_dialog.cpp b/src/yuzu/configuration/configure_dialog.cpp index 167323831..371bc01b1 100644 --- a/src/yuzu/configuration/configure_dialog.cpp +++ b/src/yuzu/configuration/configure_dialog.cpp @@ -16,10 +16,6 @@ #include "yuzu/configuration/configure_input_player.h" #include "yuzu/hotkeys.h" -static void CloseDialog(ConfigureDialog *dialog) { - dialog->close(); -} - ConfigureDialog::ConfigureDialog(QWidget* parent, HotkeyRegistry& registry, InputCommon::InputSubsystem* input_subsystem) : QDialog(parent), ui(new Ui::ConfigureDialog), registry(registry) { @@ -31,7 +27,7 @@ ConfigureDialog::ConfigureDialog(QWidget* parent, HotkeyRegistry& registry, ui->inputTab->Initialize(input_subsystem); - ui->generalTab->SetResetCallback(&CloseDialog, this); + ui->generalTab->SetResetCallback([&] { this->close(); }); SetConfiguration(); PopulateSelectionList(); 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() { diff --git a/src/yuzu/configuration/configure_general.h b/src/yuzu/configuration/configure_general.h index 2a7741ad9..a0fd52492 100644 --- a/src/yuzu/configuration/configure_general.h +++ b/src/yuzu/configuration/configure_general.h @@ -4,6 +4,7 @@ #pragma once +#include #include #include @@ -26,7 +27,7 @@ public: explicit ConfigureGeneral(QWidget* parent = nullptr); ~ConfigureGeneral() override; - void SetResetCallback(void (*callback)(ConfigureDialog*), ConfigureDialog *param); + void SetResetCallback(std::function callback); void ResetDefaults(); void ApplyConfiguration(); @@ -38,8 +39,7 @@ private: void SetupPerGameUI(); - void (*ResetCallback)(ConfigureDialog*); - ConfigureDialog *reset_callback_param; + std::function reset_callback; std::unique_ptr ui; diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp index e5a2fdf8c..c5dec215d 100644 --- a/src/yuzu/main.cpp +++ b/src/yuzu/main.cpp @@ -2611,17 +2611,18 @@ void GMainWindow::OnConfigure() { LOG_WARNING(Frontend, "Failed to remove game metadata cache files"); } - // Explicitly save the game directories, since reinitializing config does not do so. - QVector old_game_dirs = UISettings::values.game_dirs; - QVector old_favorited_ids = UISettings::values.favorited_ids; + // Explicitly save the game directories, since reinitializing config does not explicitly do + // so. + QVector old_game_dirs = std::move(UISettings::values.game_dirs); + QVector old_favorited_ids = std::move(UISettings::values.favorited_ids); Settings::values.disabled_addons.clear(); config = std::make_unique(); UISettings::values.reset_to_defaults = false; - UISettings::values.game_dirs = old_game_dirs; - UISettings::values.favorited_ids = old_favorited_ids; + UISettings::values.game_dirs = std::move(old_game_dirs); + UISettings::values.favorited_ids = std::move(old_favorited_ids); InitializeRecentFileMenuActions();