diff --git a/Source/Core/DolphinQt2/Settings/GeneralPane.cpp b/Source/Core/DolphinQt2/Settings/GeneralPane.cpp index 097053b9c3..3820bab34f 100644 --- a/Source/Core/DolphinQt2/Settings/GeneralPane.cpp +++ b/Source/Core/DolphinQt2/Settings/GeneralPane.cpp @@ -18,6 +18,7 @@ #include "Core/Analytics.h" #include "Core/ConfigManager.h" +#include "Core/Core.h" #include "Core/PowerPC/PowerPC.h" #include "DolphinQt2/Settings.h" #include "UICommon/AutoUpdate.h" @@ -38,6 +39,9 @@ GeneralPane::GeneralPane(QWidget* parent) : QWidget(parent) LoadConfig(); ConnectLayout(); + + connect(&Settings::Instance(), &Settings::EmulationStateChanged, this, + &GeneralPane::OnEmulationStateChanged); } void GeneralPane::CreateLayout() @@ -59,6 +63,17 @@ void GeneralPane::CreateLayout() setLayout(m_main_layout); } +void GeneralPane::OnEmulationStateChanged(Core::State state) +{ + const bool running = state != Core::State::Uninitialized; + + m_checkbox_dualcore->setEnabled(!running); + m_checkbox_cheats->setEnabled(!running); + m_radio_interpreter->setEnabled(!running); + m_radio_cached_interpreter->setEnabled(!running); + m_radio_jit->setEnabled(!running); +} + void GeneralPane::ConnectLayout() { connect(m_checkbox_dualcore, &QCheckBox::toggled, this, &GeneralPane::OnSaveConfig); diff --git a/Source/Core/DolphinQt2/Settings/GeneralPane.h b/Source/Core/DolphinQt2/Settings/GeneralPane.h index 79b5c30677..f1bbc0ff82 100644 --- a/Source/Core/DolphinQt2/Settings/GeneralPane.h +++ b/Source/Core/DolphinQt2/Settings/GeneralPane.h @@ -14,6 +14,11 @@ class QRadioButton; class QSlider; class QVBoxLayout; +namespace Core +{ +enum class State; +} + class GeneralPane final : public QWidget { Q_OBJECT @@ -29,6 +34,7 @@ private: void LoadConfig(); void OnSaveConfig(); + void OnEmulationStateChanged(Core::State state); // Widgets QVBoxLayout* m_main_layout;