Files
kaizen/src/frontend/CPUSettings.cpp
2024-01-23 11:44:46 +01:00

35 lines
991 B
C++

#include <CPUSettings.hpp>
#include <QVBoxLayout>
#include <QLabel>
#include <JSONUtils.hpp>
#include <log.hpp>
CPUSettings::CPUSettings(nlohmann::json& settings) : settings(settings), QWidget(nullptr) {
cpuTypes->addItems({ "Interpreter", "Dynamic Recompiler" });
if (JSONGetField<std::string>(settings, "cpu", "type") == "jit") {
cpuTypes->setCurrentIndex(1);
} else {
cpuTypes->setCurrentIndex(0);
}
connect(cpuTypes, &QComboBox::currentIndexChanged, this, [&]() {
if (cpuTypes->currentIndex() == 0) {
JSONSetField(settings, "cpu", "type", "interpreter");
} else if (cpuTypes->currentIndex() == 1) {
JSONSetField(settings, "cpu", "type", "jit");
} else {
Util::panic("Impossible CPU type!");
}
emit modified();
});
QLabel* label = new QLabel("CPU type:");
QVBoxLayout* mainLayout = new QVBoxLayout;
mainLayout->addWidget(label);
mainLayout->addWidget(cpuTypes);
mainLayout->addStretch();
setLayout(mainLayout);
}