DolphinQt: Save when closing settings window

If Dolphin crashes, changes that have been made to settings are often
lost. This has been a minor annoyance for me when developing, but it has
become a much bigger issue recently due to the problem where Dolphin
freezes on shutdown for ROG Ally users.

Instead of saving the config when certain arbitrary settings are
changed, let's save the config when the user closes the settings window.
This commit is contained in:
JosJuice 2026-03-04 21:53:18 +01:00
parent 239c4e444c
commit d25ef67d6f
4 changed files with 7 additions and 6 deletions

View File

@ -210,3 +210,8 @@ void SettingsWindow::SelectPane(SettingsWindowPaneIndex index)
{
ActivatePane(std::to_underlying(index));
}
void SettingsWindow::closeEvent(QCloseEvent*)
{
Config::Save();
}

View File

@ -60,4 +60,6 @@ public:
explicit SettingsWindow(MainWindow* parent);
void SelectPane(SettingsWindowPaneIndex);
void closeEvent(QCloseEvent* event) override;
};

View File

@ -16,7 +16,6 @@
#include "Core/AchievementManager.h"
#include "Core/Config/MainSettings.h"
#include "Core/Config/UISettings.h"
#include "Core/ConfigManager.h"
#include "Core/Core.h"
#include "Core/DolphinAnalytics.h"
#include "Core/System.h"
@ -117,7 +116,6 @@ void GeneralPane::ConnectLayout()
connect(m_combobox_speedlimit, &QComboBox::currentIndexChanged, [this] {
Config::SetBaseOrCurrent(Config::MAIN_EMULATION_SPEED,
m_combobox_speedlimit->currentIndex() * 0.1f);
Config::Save();
});
connect(m_combobox_fallback_region, &QComboBox::currentIndexChanged, this,
@ -339,7 +337,6 @@ void GeneralPane::OnSaveConfig()
{
Config::ConfigChangeCallbackGuard config_guard;
auto& settings = SConfig::GetInstance();
if (AutoUpdateChecker::SystemSupportsAutoUpdates())
{
Settings::Instance().SetAutoUpdateTrack(
@ -356,8 +353,6 @@ void GeneralPane::OnSaveConfig()
#endif
Settings::Instance().SetFallbackRegion(
UpdateFallbackRegionFromIndex(m_combobox_fallback_region->currentIndex()));
settings.SaveSettings();
}
#if defined(USE_ANALYTICS) && USE_ANALYTICS

View File

@ -369,7 +369,6 @@ void WiiPane::OnUSBWhitelistAddButton()
}
whitelist.emplace(*usb_device);
Config::SetUSBDeviceWhitelist(whitelist);
Config::Save();
PopulateUSBPassthroughListWidget();
}