lay down basic imgui wrappers/helpers
This commit is contained in:
@@ -1,44 +1,44 @@
|
||||
#include <AudioSettings.hpp>
|
||||
|
||||
AudioSettings::AudioSettings(nlohmann::json &settings) : QWidget(nullptr), settings(settings) {
|
||||
lockChannels->setChecked(JSONGetField<bool>(settings, "audio", "lock"));
|
||||
volumeL->setValue(JSONGetField<float>(settings, "audio", "volumeL") * 100);
|
||||
volumeR->setValue(JSONGetField<float>(settings, "audio", "volumeR") * 100);
|
||||
volumeL->setRange(0, 100);
|
||||
volumeR->setRange(0, 100);
|
||||
|
||||
connect(lockChannels.get(), &QCheckBox::stateChanged, this, [&]() {
|
||||
JSONSetField(settings, "audio", "lock", lockChannels->isChecked());
|
||||
if (lockChannels->isChecked()) {
|
||||
volumeR->setValue(volumeL->value());
|
||||
}
|
||||
|
||||
emit modified();
|
||||
});
|
||||
|
||||
connect(volumeL.get(), &QSlider::valueChanged, this, [&]() {
|
||||
JSONSetField(settings, "audio", "volumeL", float(volumeL->value()) / 100.f);
|
||||
if (lockChannels->isChecked()) {
|
||||
volumeR->setValue(volumeL->value());
|
||||
JSONSetField(settings, "audio", "volumeR", float(volumeL->value()) / 100.f);
|
||||
}
|
||||
emit modified();
|
||||
});
|
||||
|
||||
connect(volumeR.get(), &QSlider::valueChanged, this, [&]() {
|
||||
if (!lockChannels->isChecked()) {
|
||||
JSONSetField(settings, "audio", "volumeR", float(volumeR->value()) / 100.f);
|
||||
}
|
||||
emit modified();
|
||||
});
|
||||
|
||||
mainLayout->addWidget(labelLock.get());
|
||||
mainLayout->addWidget(lockChannels.get());
|
||||
volLayout->addWidget(labelL.get());
|
||||
volLayout->addWidget(volumeL.get());
|
||||
volLayout->addWidget(labelR.get());
|
||||
volLayout->addWidget(volumeR.get());
|
||||
mainLayout->addLayout(volLayout.get());
|
||||
mainLayout->addStretch();
|
||||
setLayout(mainLayout.get());
|
||||
AudioSettings::AudioSettings(nlohmann::json &settings) : settings(settings) {
|
||||
lockChannels.setChecked(JSONGetField<bool>(settings, "audio", "lock"));
|
||||
volumeL.setValue(JSONGetField<float>(settings, "audio", "volumeL") * 100);
|
||||
volumeR.setValue(JSONGetField<float>(settings, "audio", "volumeR") * 100);
|
||||
}
|
||||
|
||||
bool AudioSettings::render() {
|
||||
if(lockChannels.render()) {
|
||||
auto isChecked = lockChannels.isChecked();
|
||||
JSONSetField(settings, "audio", "lock", isChecked);
|
||||
if (isChecked) {
|
||||
volumeR.setValue(volumeL.getValue());
|
||||
}
|
||||
|
||||
modified = true;
|
||||
}
|
||||
|
||||
ImGui::SameLine();
|
||||
|
||||
if(volumeL.render()) {
|
||||
float valueL = volumeL.getValue();
|
||||
JSONSetField(settings, "audio", "volumeL", float(valueL) / 100.f);
|
||||
if (lockChannels.isChecked()) {
|
||||
volumeR.setValue(valueL);
|
||||
JSONSetField(settings, "audio", "volumeR", float(valueL) / 100.f);
|
||||
}
|
||||
|
||||
modified = true;
|
||||
}
|
||||
|
||||
ImGui::SameLine();
|
||||
|
||||
if(volumeR.render()) {
|
||||
if (!lockChannels.isChecked()) {
|
||||
JSONSetField(settings, "audio", "volumeR", float(volumeR.getValue()) / 100.f);
|
||||
}
|
||||
|
||||
modified = true;
|
||||
}
|
||||
|
||||
return modified;
|
||||
}
|
||||
Reference in New Issue
Block a user