configure_audio/cpu: Sort settings

Was producing out of order settings as a result of the switch to vectors
This commit is contained in:
lat9nq 2023-07-22 00:42:15 -04:00
parent 33d118509a
commit 85ed10f31f
2 changed files with 12 additions and 3 deletions

View File

@ -1,13 +1,16 @@
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project // SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later // SPDX-License-Identifier: GPL-2.0-or-later
#include <map>
#include <memory> #include <memory>
#include <vector> #include <vector>
#include <QComboBox> #include <QComboBox>
#include "audio_core/sink/sink.h" #include "audio_core/sink/sink.h"
#include "audio_core/sink/sink_details.h" #include "audio_core/sink/sink_details.h"
#include "common/common_types.h"
#include "common/settings.h" #include "common/settings.h"
#include "common/settings_common.h"
#include "core/core.h" #include "core/core.h"
#include "ui_configure_audio.h" #include "ui_configure_audio.h"
#include "yuzu/configuration/configuration_shared.h" #include "yuzu/configuration/configuration_shared.h"
@ -33,6 +36,8 @@ void ConfigureAudio::Setup(const ConfigurationShared::Builder& builder) {
std::vector<Settings::BasicSetting*> settings; std::vector<Settings::BasicSetting*> settings;
std::map<u32, QWidget*> hold;
auto push = [&](Settings::Category category) { auto push = [&](Settings::Category category) {
for (auto* setting : Settings::values.linkage.by_category[category]) { for (auto* setting : Settings::values.linkage.by_category[category]) {
settings.push_back(setting); settings.push_back(setting);
@ -53,7 +58,7 @@ void ConfigureAudio::Setup(const ConfigurationShared::Builder& builder) {
continue; continue;
} }
layout.addWidget(widget); hold.emplace(std::pair{setting->Id(), widget});
if (setting->Id() == Settings::values.sink_id.Id()) { if (setting->Id() == Settings::values.sink_id.Id()) {
// TODO (lat9nq): Let the system manage sink_id // TODO (lat9nq): Let the system manage sink_id
@ -70,6 +75,10 @@ void ConfigureAudio::Setup(const ConfigurationShared::Builder& builder) {
input_device_combo_box = widget->combobox; input_device_combo_box = widget->combobox;
} }
} }
for (const auto& [id, widget] : hold) {
layout.addWidget(widget);
}
} }
void ConfigureAudio::SetConfiguration() { void ConfigureAudio::SetConfiguration() {

View File

@ -35,7 +35,7 @@ void ConfigureCpu::SetConfiguration() {}
void ConfigureCpu::Setup(const ConfigurationShared::Builder& builder) { void ConfigureCpu::Setup(const ConfigurationShared::Builder& builder) {
auto* accuracy_layout = ui->widget_accuracy->layout(); auto* accuracy_layout = ui->widget_accuracy->layout();
auto* unsafe_layout = ui->unsafe_widget->layout(); auto* unsafe_layout = ui->unsafe_widget->layout();
std::map<std::string, QWidget*> unsafe_hold{}; std::map<u32, QWidget*> unsafe_hold{};
std::vector<Settings::BasicSetting*> settings; std::vector<Settings::BasicSetting*> settings;
const auto push = [&](Settings::Category category) { const auto push = [&](Settings::Category category) {
@ -64,7 +64,7 @@ void ConfigureCpu::Setup(const ConfigurationShared::Builder& builder) {
accuracy_combobox = widget->combobox; accuracy_combobox = widget->combobox;
} else { } else {
// Presently, all other settings here are unsafe checkboxes // Presently, all other settings here are unsafe checkboxes
unsafe_hold.insert({setting->GetLabel(), widget}); unsafe_hold.insert({setting->Id(), widget});
} }
} }