Qt/GeneralPane: Refresh widget state on config change
This fixes a nasty issue where you can change the Dual Core setting during emulation, if it has been overridden by GameINI or NetPlay, by simply changing any of the non-disabled settings. This is because changing any of the settings will write all of them to the config. This issue is particularly nasty because managing to disable Dual Core during emulation, and then stopping it, results in the emulator core being totally deadlocked. It's impossible to recover from this state, and Dolphin will remain as a zombie process on the system, consuming resources and holding locks, until forcibly killed.
This commit is contained in:
parent
95aadff0e7
commit
a33593baf7
|
@ -55,6 +55,7 @@ GeneralPane::GeneralPane(QWidget* parent) : QWidget(parent)
|
||||||
|
|
||||||
connect(&Settings::Instance(), &Settings::EmulationStateChanged, this,
|
connect(&Settings::Instance(), &Settings::EmulationStateChanged, this,
|
||||||
&GeneralPane::OnEmulationStateChanged);
|
&GeneralPane::OnEmulationStateChanged);
|
||||||
|
connect(&Settings::Instance(), &Settings::ConfigChanged, this, &GeneralPane::LoadConfig);
|
||||||
|
|
||||||
OnEmulationStateChanged(Core::GetState());
|
OnEmulationStateChanged(Core::GetState());
|
||||||
}
|
}
|
||||||
|
@ -235,6 +236,8 @@ void GeneralPane::CreateAnalytics()
|
||||||
|
|
||||||
void GeneralPane::LoadConfig()
|
void GeneralPane::LoadConfig()
|
||||||
{
|
{
|
||||||
|
const QSignalBlocker blocker(this);
|
||||||
|
|
||||||
if (AutoUpdateChecker::SystemSupportsAutoUpdates())
|
if (AutoUpdateChecker::SystemSupportsAutoUpdates())
|
||||||
{
|
{
|
||||||
const auto track = Settings::Instance().GetAutoUpdateTrack().toStdString();
|
const auto track = Settings::Instance().GetAutoUpdateTrack().toStdString();
|
||||||
|
|
Loading…
Reference in New Issue