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 <mathew1800@gmail.com>
This commit is contained in:
parent
4a3d57e469
commit
c17e1bd7a8
4 changed files with 17 additions and 19 deletions
|
@ -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();
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
#include <functional>
|
||||
#include <utility>
|
||||
#include <QCheckBox>
|
||||
#include <QMessageBox>
|
||||
#include <QSpinBox>
|
||||
|
@ -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<void()> 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() {
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include <functional>
|
||||
#include <memory>
|
||||
#include <QWidget>
|
||||
|
||||
|
@ -26,7 +27,7 @@ public:
|
|||
explicit ConfigureGeneral(QWidget* parent = nullptr);
|
||||
~ConfigureGeneral() override;
|
||||
|
||||
void SetResetCallback(void (*callback)(ConfigureDialog*), ConfigureDialog *param);
|
||||
void SetResetCallback(std::function<void()> callback);
|
||||
void ResetDefaults();
|
||||
void ApplyConfiguration();
|
||||
|
||||
|
@ -38,8 +39,7 @@ private:
|
|||
|
||||
void SetupPerGameUI();
|
||||
|
||||
void (*ResetCallback)(ConfigureDialog*);
|
||||
ConfigureDialog *reset_callback_param;
|
||||
std::function<void()> reset_callback;
|
||||
|
||||
std::unique_ptr<Ui::ConfigureGeneral> ui;
|
||||
|
||||
|
|
|
@ -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<UISettings::GameDir> old_game_dirs = UISettings::values.game_dirs;
|
||||
QVector<u64> old_favorited_ids = UISettings::values.favorited_ids;
|
||||
// Explicitly save the game directories, since reinitializing config does not explicitly do
|
||||
// so.
|
||||
QVector<UISettings::GameDir> old_game_dirs = std::move(UISettings::values.game_dirs);
|
||||
QVector<u64> old_favorited_ids = std::move(UISettings::values.favorited_ids);
|
||||
|
||||
Settings::values.disabled_addons.clear();
|
||||
|
||||
config = std::make_unique<Config>();
|
||||
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();
|
||||
|
||||
|
|
Loading…
Reference in a new issue