From 1eba390d1ed00f7aea49dcde397ed7da6fa24c0c Mon Sep 17 00:00:00 2001 From: DanielSvoboda Date: Fri, 21 Feb 2025 13:16:25 -0300 Subject: [PATCH] fix close without saving --- src/qt_gui/settings_dialog.cpp | 22 +++++++++++++++++++++- src/qt_gui/settings_dialog.h | 1 + 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/qt_gui/settings_dialog.cpp b/src/qt_gui/settings_dialog.cpp index c46e162f7..0be5c1a33 100644 --- a/src/qt_gui/settings_dialog.cpp +++ b/src/qt_gui/settings_dialog.cpp @@ -63,6 +63,9 @@ QMap logTypeMap; QMap fullscreenModeMap; QMap chooseHomeTabMap; +int backgroundImageOpacitySlider_backup; +int bgm_volume_backup; + SettingsDialog::SettingsDialog(std::span physical_devices, std::shared_ptr m_compat_info, QWidget* parent) @@ -110,7 +113,14 @@ SettingsDialog::SettingsDialog(std::span physical_devices, defaultTextEdit = tr("Point your mouse at an option to display its description."); ui->descriptionText->setText(defaultTextEdit); - connect(ui->buttonBox, &QDialogButtonBox::rejected, this, &QWidget::close); + connect(ui->buttonBox, &QDialogButtonBox::rejected, this, [this]() { + ui->backgroundImageOpacitySlider->setValue(backgroundImageOpacitySlider_backup); + emit BackgroundOpacityChanged(backgroundImageOpacitySlider_backup); + + ui->BGMVolumeSlider->setValue(bgm_volume_backup); + BackgroundMusicPlayer::getInstance().setVolume(bgm_volume_backup); + this->close(); + }); connect(ui->buttonBox, &QDialogButtonBox::clicked, this, [this, config_dir](QAbstractButton* button) { @@ -335,6 +345,13 @@ SettingsDialog::SettingsDialog(std::span physical_devices, ui->copyGPUBuffersCheckBox->installEventFilter(this); } } +void SettingsDialog::closeEvent(QCloseEvent* event) { + ui->backgroundImageOpacitySlider->setValue(backgroundImageOpacitySlider_backup); + emit BackgroundOpacityChanged(backgroundImageOpacitySlider_backup); + ui->BGMVolumeSlider->setValue(bgm_volume_backup); + BackgroundMusicPlayer::getInstance().setVolume(bgm_volume_backup); + QDialog::closeEvent(event); +} void SettingsDialog::LoadValuesFromConfig() { @@ -466,6 +483,9 @@ void SettingsDialog::LoadValuesFromConfig() { ResetInstallFolders(); ui->backgroundImageOpacitySlider->setValue(Config::getBackgroundImageOpacity()); ui->showBackgroundImageCheckBox->setChecked(Config::getShowBackgroundImage()); + + backgroundImageOpacitySlider_backup = Config::getBackgroundImageOpacity(); + bgm_volume_backup = Config::getBGMvolume(); } void SettingsDialog::InitializeEmulatorLanguages() { diff --git a/src/qt_gui/settings_dialog.h b/src/qt_gui/settings_dialog.h index c440351f6..5a42b02d5 100644 --- a/src/qt_gui/settings_dialog.h +++ b/src/qt_gui/settings_dialog.h @@ -36,6 +36,7 @@ signals: void BackgroundOpacityChanged(int opacity); private: + void closeEvent(QCloseEvent* event) override; void LoadValuesFromConfig(); void UpdateSettings(); void ResetInstallFolders();