Qt/GeneralPane: Disable certain options while emulation is running

This commit is contained in:
spycrab 2018-04-21 22:09:46 +02:00
parent 9dcc8131df
commit b2e5f1d85f
2 changed files with 21 additions and 0 deletions

View File

@ -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);

View File

@ -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;