diff options
author | flodavid <fl.david.53@gmail.com> | 2023-11-03 15:41:16 +0100 |
---|---|---|
committer | flodavid <fl.david.53@gmail.com> | 2023-11-25 19:30:37 +0100 |
commit | 40644d43f700cb0075db0eea288078bda7cf4527 (patch) | |
tree | 876d26a64a803d2b1509e71a13fe822f1e851c00 /src/yuzu/configuration/configure_general.cpp | |
parent | dfa56765d6d869a317ec46dcf3a8f4f35b146382 (diff) |
yuzu: create linux group in general settings
- Create files dedicated to starting and stopping gamemode functions
- Use them in yuzu and yuzu_cmd modules
Diffstat (limited to 'src/yuzu/configuration/configure_general.cpp')
-rw-r--r-- | src/yuzu/configuration/configure_general.cpp | 46 |
1 files changed, 36 insertions, 10 deletions
diff --git a/src/yuzu/configuration/configure_general.cpp b/src/yuzu/configuration/configure_general.cpp index ce7e17850..701b895e7 100644 --- a/src/yuzu/configuration/configure_general.cpp +++ b/src/yuzu/configuration/configure_general.cpp @@ -29,9 +29,6 @@ ConfigureGeneral::ConfigureGeneral(const Core::System& system_, if (!Settings::IsConfiguringGlobal()) { ui->button_reset_defaults->setVisible(false); } -#ifndef __linux__ - ui->enable_gamemode->setVisible(false); -#endif } ConfigureGeneral::~ConfigureGeneral() = default; @@ -39,12 +36,29 @@ ConfigureGeneral::~ConfigureGeneral() = default; void ConfigureGeneral::SetConfiguration() {} void ConfigureGeneral::Setup(const ConfigurationShared::Builder& builder) { - QLayout& layout = *ui->general_widget->layout(); + QLayout& general_layout = *ui->general_widget->layout(); + QLayout& linux_layout = *ui->linux_widget->layout(); + + std::map<u32, QWidget*> general_hold{}; + std::map<u32, QWidget*> linux_hold{}; + + std::vector<Settings::BasicSetting*> settings; + + auto push = [&settings](auto& list) { + for (auto setting : list) { + settings.push_back(setting); + } + }; - std::map<u32, QWidget*> hold{}; + push(UISettings::values.linkage.by_category[Settings::Category::UiGeneral]); + push(Settings::values.linkage.by_category[Settings::Category::Linux]); - for (const auto setting : - UISettings::values.linkage.by_category[Settings::Category::UiGeneral]) { + // Only show Linux group on Unix +#ifndef __unix__ + ui->LinuxGroupBox->setVisible(false); +#endif + + for (const auto setting : settings) { auto* widget = builder.BuildWidget(setting, apply_funcs); if (widget == nullptr) { @@ -55,11 +69,23 @@ void ConfigureGeneral::Setup(const ConfigurationShared::Builder& builder) { continue; } - hold.emplace(setting->Id(), widget); + switch (setting->GetCategory()) { + case Settings::Category::UiGeneral: + general_hold.emplace(setting->Id(), widget); + break; + case Settings::Category::Linux: + linux_hold.emplace(setting->Id(), widget); + break; + default: + widget->deleteLater(); + } } - for (const auto& [id, widget] : hold) { - layout.addWidget(widget); + for (const auto& [id, widget] : general_hold) { + general_layout.addWidget(widget); + } + for (const auto& [id, widget] : linux_hold) { + linux_layout.addWidget(widget); } } |