From 505aa3a4c1eb2384ab5a46aecf6431db239b74e3 Mon Sep 17 00:00:00 2001
From: MerryMage <MerryMage@users.noreply.github.com>
Date: Sat, 11 Jul 2020 16:25:49 +0100
Subject: configure_cpu: Show/Hide debugging options

---
 src/yuzu/configuration/configure_cpu.cpp | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

(limited to 'src/yuzu/configuration/configure_cpu.cpp')

diff --git a/src/yuzu/configuration/configure_cpu.cpp b/src/yuzu/configuration/configure_cpu.cpp
index 28e010b6b3..4fc392a7eb 100644
--- a/src/yuzu/configuration/configure_cpu.cpp
+++ b/src/yuzu/configuration/configure_cpu.cpp
@@ -15,6 +15,9 @@ ConfigureCpu::ConfigureCpu(QWidget* parent) : QWidget(parent), ui(new Ui::Config
     ui->setupUi(this);
 
     SetConfiguration();
+
+    connect(ui->accuracy, qOverload<int>(&QComboBox::currentIndexChanged), this,
+            &ConfigureCpu::UpdateGroups);
 }
 
 ConfigureCpu::~ConfigureCpu() = default;
@@ -22,6 +25,10 @@ ConfigureCpu::~ConfigureCpu() = default;
 void ConfigureCpu::SetConfiguration() {
     const bool runtime_lock = !Core::System::GetInstance().IsPoweredOn();
 
+    ui->accuracy->setEnabled(runtime_lock);
+    ui->accuracy->setCurrentIndex(static_cast<int>(Settings::values.cpu_accuracy));
+    UpdateGroups(static_cast<int>(Settings::values.cpu_accuracy));
+
     ui->cpuopt_page_tables->setEnabled(runtime_lock);
     ui->cpuopt_page_tables->setChecked(Settings::values.cpuopt_page_tables);
     ui->cpuopt_block_linking->setEnabled(runtime_lock);
@@ -40,7 +47,22 @@ void ConfigureCpu::SetConfiguration() {
     ui->cpuopt_reduce_misalign_checks->setChecked(Settings::values.cpuopt_reduce_misalign_checks);
 }
 
+void ConfigureCpu::UpdateGroups(int index) {
+    switch (index) {
+    case 0:
+    default:
+        ui->group_safe->setVisible(false);
+        break;
+    case 1:
+        ui->group_safe->setVisible(true);
+        break;
+    }
+}
+
 void ConfigureCpu::ApplyConfiguration() {
+    Settings::values.cpu_accuracy =
+        static_cast<Settings::CPUAccuracy>(ui->accuracy->currentIndex());
+
     Settings::values.cpuopt_page_tables = ui->cpuopt_page_tables->isChecked();
     Settings::values.cpuopt_block_linking = ui->cpuopt_block_linking->isChecked();
     Settings::values.cpuopt_return_stack_buffer = ui->cpuopt_return_stack_buffer->isChecked();
-- 
cgit v1.2.3-70-g09d2