configuration: Use a mapping of setting value to name

Makes comboboxes always correspond to the value of the setting they're
modifying.
This commit is contained in:
lat9nq
2023-05-18 22:17:36 -04:00
parent 86ed82cdde
commit c5a3642cb6
18 changed files with 354 additions and 228 deletions

View File

@ -15,12 +15,13 @@
#include "yuzu/configuration/shared_widget.h"
#include "yuzu/uisettings.h"
ConfigureAudio::ConfigureAudio(const Core::System& system_,
std::shared_ptr<std::forward_list<ConfigurationShared::Tab*>> group,
const ConfigurationShared::TranslationMap& translations_,
QWidget* parent)
: Tab(group, parent),
ui(std::make_unique<Ui::ConfigureAudio>()), system{system_}, translations{translations_} {
ConfigureAudio::ConfigureAudio(
const Core::System& system_,
std::shared_ptr<std::forward_list<ConfigurationShared::Tab*>> group,
const ConfigurationShared::TranslationMap& translations_,
const ConfigurationShared::ComboboxTranslationMap& combobox_translations_, QWidget* parent)
: Tab(group, parent), ui(std::make_unique<Ui::ConfigureAudio>()), system{system_},
translations{translations_}, combobox_translations{combobox_translations_} {
ui->setupUi(this);
Setup();
@ -48,18 +49,18 @@ void ConfigureAudio::Setup() {
auto* widget = [&]() {
if (setting->Id() == Settings::values.volume.Id()) {
return new ConfigurationShared::Widget(
setting, translations, this, runtime_lock, apply_funcs,
setting, translations, combobox_translations, this, runtime_lock, apply_funcs,
ConfigurationShared::RequestType::Slider, true, 1.0f, nullptr,
tr("%1%", "Volume percentage (e.g. 50%)"));
} else if (setting->Id() == Settings::values.audio_output_device_id.Id() ||
setting->Id() == Settings::values.audio_input_device_id.Id() ||
setting->Id() == Settings::values.sink_id.Id()) {
return new ConfigurationShared::Widget(
setting, translations, this, runtime_lock, apply_funcs,
setting, translations, combobox_translations, this, runtime_lock, apply_funcs,
ConfigurationShared::RequestType::ComboBox, false);
} else {
return new ConfigurationShared::Widget(setting, translations, this, runtime_lock,
apply_funcs);
return new ConfigurationShared::Widget(setting, translations, combobox_translations,
this, runtime_lock, apply_funcs);
}
}();