From ab30f764447fc5c13a1c4d4aec1a33485d676039 Mon Sep 17 00:00:00 2001 From: Reg Tiangha Date: Tue, 30 Apr 2024 11:19:57 -0600 Subject: [PATCH] lime3ds-gui: move Layout section to its own tab called Layout --- src/lime_qt/CMakeLists.txt | 3 + .../configuration/configure_dialog.cpp | 9 +- src/lime_qt/configuration/configure_dialog.h | 2 + .../configuration/configure_enhancements.cpp | 77 ---- .../configuration/configure_enhancements.h | 2 - .../configuration/configure_enhancements.ui | 374 ---------------- .../configuration/configure_layout.cpp | 124 +++++ src/lime_qt/configuration/configure_layout.h | 44 ++ src/lime_qt/configuration/configure_layout.ui | 423 ++++++++++++++++++ 9 files changed, 604 insertions(+), 454 deletions(-) create mode 100644 src/lime_qt/configuration/configure_layout.cpp create mode 100644 src/lime_qt/configuration/configure_layout.h create mode 100644 src/lime_qt/configuration/configure_layout.ui diff --git a/src/lime_qt/CMakeLists.txt b/src/lime_qt/CMakeLists.txt index d44dfc799..5cd6ecbfe 100644 --- a/src/lime_qt/CMakeLists.txt +++ b/src/lime_qt/CMakeLists.txt @@ -48,6 +48,9 @@ add_executable(lime-qt configuration/configure_enhancements.cpp configuration/configure_enhancements.h configuration/configure_enhancements.ui + configuration/configure_layout.cpp + configuration/configure_layout.h + configuration/configure_layout.ui configuration/configure_dialog.cpp configuration/configure_dialog.h configuration/configure_general.cpp diff --git a/src/lime_qt/configuration/configure_dialog.cpp b/src/lime_qt/configuration/configure_dialog.cpp index 46e7c9bc4..12cdf1b3f 100644 --- a/src/lime_qt/configuration/configure_dialog.cpp +++ b/src/lime_qt/configuration/configure_dialog.cpp @@ -15,6 +15,7 @@ #include "lime_qt/configuration/configure_graphics.h" #include "lime_qt/configuration/configure_hotkeys.h" #include "lime_qt/configuration/configure_input.h" +#include "lime_qt/configuration/configure_layout.h" #include "lime_qt/configuration/configure_storage.h" #include "lime_qt/configuration/configure_system.h" #include "lime_qt/configuration/configure_ui.h" @@ -34,6 +35,7 @@ ConfigureDialog::ConfigureDialog(QWidget* parent, HotkeyRegistry& registry_, Cor graphics_tab{ std::make_unique(gl_renderer, physical_devices, is_powered_on, this)}, enhancements_tab{std::make_unique(this)}, + layout_tab{std::make_unique(this)}, audio_tab{std::make_unique(is_powered_on, this)}, camera_tab{std::make_unique(this)}, debug_tab{std::make_unique(is_powered_on, this)}, @@ -49,6 +51,7 @@ ConfigureDialog::ConfigureDialog(QWidget* parent, HotkeyRegistry& registry_, Cor ui->tabWidget->addTab(hotkeys_tab.get(), tr("Hotkeys")); ui->tabWidget->addTab(graphics_tab.get(), tr("Graphics")); ui->tabWidget->addTab(enhancements_tab.get(), tr("Enhancements")); + ui->tabWidget->addTab(layout_tab.get(), tr("Layout")); ui->tabWidget->addTab(audio_tab.get(), tr("Audio")); ui->tabWidget->addTab(camera_tab.get(), tr("Camera")); ui->tabWidget->addTab(debug_tab.get(), tr("Debug")); @@ -86,6 +89,7 @@ void ConfigureDialog::SetConfiguration() { input_tab->LoadConfiguration(); graphics_tab->SetConfiguration(); enhancements_tab->SetConfiguration(); + layout_tab->SetConfiguration(); audio_tab->SetConfiguration(); camera_tab->SetConfiguration(); debug_tab->SetConfiguration(); @@ -102,6 +106,7 @@ void ConfigureDialog::ApplyConfiguration() { hotkeys_tab->ApplyConfiguration(registry); graphics_tab->ApplyConfiguration(); enhancements_tab->ApplyConfiguration(); + layout_tab->ApplyConfiguration(); audio_tab->ApplyConfiguration(); camera_tab->ApplyConfiguration(); debug_tab->ApplyConfiguration(); @@ -120,7 +125,7 @@ void ConfigureDialog::PopulateSelectionList() { const std::array>, 5> items{ {{tr("General"), {general_tab.get(), web_tab.get(), debug_tab.get(), ui_tab.get()}}, {tr("System"), {system_tab.get(), camera_tab.get(), storage_tab.get()}}, - {tr("Graphics"), {enhancements_tab.get(), graphics_tab.get()}}, + {tr("Graphics"), {enhancements_tab.get(), layout_tab.get(), graphics_tab.get()}}, {tr("Audio"), {audio_tab.get()}}, {tr("Controls"), {input_tab.get(), hotkeys_tab.get()}}}}; @@ -155,6 +160,7 @@ void ConfigureDialog::RetranslateUI() { hotkeys_tab->RetranslateUI(); graphics_tab->RetranslateUI(); enhancements_tab->RetranslateUI(); + layout_tab->RetranslateUI(); audio_tab->RetranslateUI(); camera_tab->RetranslateUI(); debug_tab->RetranslateUI(); @@ -173,6 +179,7 @@ void ConfigureDialog::UpdateVisibleTabs() { {input_tab.get(), tr("Input")}, {hotkeys_tab.get(), tr("Hotkeys")}, {enhancements_tab.get(), tr("Enhancements")}, + {layout_tab.get(), tr("Layout")}, {graphics_tab.get(), tr("Advanced")}, {audio_tab.get(), tr("Audio")}, {camera_tab.get(), tr("Camera")}, diff --git a/src/lime_qt/configuration/configure_dialog.h b/src/lime_qt/configuration/configure_dialog.h index db2549fcb..ce3c6170c 100644 --- a/src/lime_qt/configuration/configure_dialog.h +++ b/src/lime_qt/configuration/configure_dialog.h @@ -24,6 +24,7 @@ class ConfigureSystem; class ConfigureInput; class ConfigureHotkeys; class ConfigureGraphics; +class ConfigureLayout; class ConfigureEnhancements; class ConfigureAudio; class ConfigureCamera; @@ -66,6 +67,7 @@ private: std::unique_ptr hotkeys_tab; std::unique_ptr graphics_tab; std::unique_ptr enhancements_tab; + std::unique_ptr layout_tab; std::unique_ptr audio_tab; std::unique_ptr camera_tab; std::unique_ptr debug_tab; diff --git a/src/lime_qt/configuration/configure_enhancements.cpp b/src/lime_qt/configuration/configure_enhancements.cpp index 904ca2cb5..532a84a99 100644 --- a/src/lime_qt/configuration/configure_enhancements.cpp +++ b/src/lime_qt/configuration/configure_enhancements.cpp @@ -18,37 +18,15 @@ ConfigureEnhancements::ConfigureEnhancements(QWidget* parent) SetupPerGameUI(); SetConfiguration(); - ui->layout_group->setEnabled(!Settings::values.custom_layout); - const auto graphics_api = Settings::values.graphics_api.GetValue(); const bool res_scale_enabled = graphics_api != Settings::GraphicsAPI::Software; ui->resolution_factor_combobox->setEnabled(res_scale_enabled); - ui->custom_layout_group->setEnabled( - (Settings::values.layout_option.GetValue() == Settings::LayoutOption::CustomLayout)); - connect(ui->layout_combobox, - static_cast(&QComboBox::currentIndexChanged), this, - [this](int currentIndex) { - ui->custom_layout_group->setEnabled(ui->layout_combobox->currentIndex() == 5); - }); - connect(ui->render_3d_combobox, qOverload(&QComboBox::currentIndexChanged), this, [this](int currentIndex) { updateShaders(static_cast(currentIndex)); }); - connect(ui->bg_button, &QPushButton::clicked, this, [this] { - const QColor new_bg_color = QColorDialog::getColor(bg_color); - if (!new_bg_color.isValid()) { - return; - } - bg_color = new_bg_color; - QPixmap pixmap(ui->bg_button->size()); - pixmap.fill(bg_color); - const QIcon color_icon(pixmap); - ui->bg_button->setIcon(color_icon); - }); - ui->toggle_preload_textures->setEnabled(ui->toggle_custom_textures->isChecked()); ui->toggle_async_custom_loading->setEnabled(ui->toggle_custom_textures->isChecked()); connect(ui->toggle_custom_textures, &QCheckBox::toggled, this, [this] { @@ -70,13 +48,9 @@ void ConfigureEnhancements::SetConfiguration() { &Settings::values.texture_filter); ConfigurationShared::SetHighlight(ui->widget_texture_filter, !Settings::values.texture_filter.UsingGlobal()); - ConfigurationShared::SetPerGameSetting(ui->layout_combobox, - &Settings::values.layout_option); } else { ui->resolution_factor_combobox->setCurrentIndex( Settings::values.resolution_factor.GetValue()); - ui->layout_combobox->setCurrentIndex( - static_cast(Settings::values.layout_option.GetValue())); ui->texture_filter_combobox->setCurrentIndex( static_cast(Settings::values.texture_filter.GetValue())); } @@ -88,30 +62,10 @@ void ConfigureEnhancements::SetConfiguration() { static_cast(Settings::values.mono_render_option.GetValue())); updateShaders(Settings::values.render_3d.GetValue()); ui->toggle_linear_filter->setChecked(Settings::values.filter_mode.GetValue()); - ui->toggle_swap_screen->setChecked(Settings::values.swap_screen.GetValue()); - ui->toggle_upright_screen->setChecked(Settings::values.upright_screen.GetValue()); - ui->large_screen_proportion->setValue(Settings::values.large_screen_proportion.GetValue()); - ui->custom_top_left->setValue(Settings::values.custom_top_left.GetValue()); - ui->custom_top_top->setValue(Settings::values.custom_top_top.GetValue()); - ui->custom_top_right->setValue(Settings::values.custom_top_right.GetValue()); - ui->custom_top_bottom->setValue(Settings::values.custom_top_bottom.GetValue()); - ui->custom_bottom_left->setValue(Settings::values.custom_bottom_left.GetValue()); - ui->custom_bottom_top->setValue(Settings::values.custom_bottom_top.GetValue()); - ui->custom_bottom_right->setValue(Settings::values.custom_bottom_right.GetValue()); - ui->custom_bottom_bottom->setValue(Settings::values.custom_bottom_bottom.GetValue()); - ui->custom_second_layer_opacity->setValue( - Settings::values.custom_second_layer_opacity.GetValue()); ui->toggle_dump_textures->setChecked(Settings::values.dump_textures.GetValue()); ui->toggle_custom_textures->setChecked(Settings::values.custom_textures.GetValue()); ui->toggle_preload_textures->setChecked(Settings::values.preload_textures.GetValue()); ui->toggle_async_custom_loading->setChecked(Settings::values.async_custom_loading.GetValue()); - bg_color = - QColor::fromRgbF(Settings::values.bg_red.GetValue(), Settings::values.bg_green.GetValue(), - Settings::values.bg_blue.GetValue()); - QPixmap pixmap(ui->bg_button->size()); - pixmap.fill(bg_color); - const QIcon color_icon(pixmap); - ui->bg_button->setIcon(color_icon); } void ConfigureEnhancements::updateShaders(Settings::StereoRenderOption stereo_option) { @@ -166,27 +120,11 @@ void ConfigureEnhancements::ApplyConfiguration() { Settings::values.pp_shader_name = ui->shader_combobox->itemText(ui->shader_combobox->currentIndex()).toStdString(); } - Settings::values.large_screen_proportion = ui->large_screen_proportion->value(); - - Settings::values.custom_top_left = ui->custom_top_left->value(); - Settings::values.custom_top_top = ui->custom_top_top->value(); - Settings::values.custom_top_right = ui->custom_top_right->value(); - Settings::values.custom_top_bottom = ui->custom_top_bottom->value(); - Settings::values.custom_bottom_left = ui->custom_bottom_left->value(); - Settings::values.custom_bottom_top = ui->custom_bottom_top->value(); - Settings::values.custom_bottom_right = ui->custom_bottom_right->value(); - Settings::values.custom_bottom_bottom = ui->custom_bottom_bottom->value(); - Settings::values.custom_second_layer_opacity = ui->custom_second_layer_opacity->value(); ConfigurationShared::ApplyPerGameSetting(&Settings::values.filter_mode, ui->toggle_linear_filter, linear_filter); ConfigurationShared::ApplyPerGameSetting(&Settings::values.texture_filter, ui->texture_filter_combobox); - ConfigurationShared::ApplyPerGameSetting(&Settings::values.layout_option, ui->layout_combobox); - ConfigurationShared::ApplyPerGameSetting(&Settings::values.swap_screen, ui->toggle_swap_screen, - swap_screen); - ConfigurationShared::ApplyPerGameSetting(&Settings::values.upright_screen, - ui->toggle_upright_screen, upright_screen); ConfigurationShared::ApplyPerGameSetting(&Settings::values.dump_textures, ui->toggle_dump_textures, dump_textures); ConfigurationShared::ApplyPerGameSetting(&Settings::values.custom_textures, @@ -195,10 +133,6 @@ void ConfigureEnhancements::ApplyConfiguration() { ui->toggle_preload_textures, preload_textures); ConfigurationShared::ApplyPerGameSetting(&Settings::values.async_custom_loading, ui->toggle_async_custom_loading, async_custom_loading); - - Settings::values.bg_red = static_cast(bg_color.redF()); - Settings::values.bg_green = static_cast(bg_color.greenF()); - Settings::values.bg_blue = static_cast(bg_color.blueF()); } void ConfigureEnhancements::SetupPerGameUI() { @@ -207,8 +141,6 @@ void ConfigureEnhancements::SetupPerGameUI() { ui->widget_resolution->setEnabled(Settings::values.resolution_factor.UsingGlobal()); ui->widget_texture_filter->setEnabled(Settings::values.texture_filter.UsingGlobal()); ui->toggle_linear_filter->setEnabled(Settings::values.filter_mode.UsingGlobal()); - ui->toggle_swap_screen->setEnabled(Settings::values.swap_screen.UsingGlobal()); - ui->toggle_upright_screen->setEnabled(Settings::values.upright_screen.UsingGlobal()); ui->toggle_dump_textures->setEnabled(Settings::values.dump_textures.UsingGlobal()); ui->toggle_custom_textures->setEnabled(Settings::values.custom_textures.UsingGlobal()); ui->toggle_preload_textures->setEnabled(Settings::values.preload_textures.UsingGlobal()); @@ -219,14 +151,9 @@ void ConfigureEnhancements::SetupPerGameUI() { ui->stereo_group->setVisible(false); ui->widget_shader->setVisible(false); - ui->bg_color_group->setVisible(false); ConfigurationShared::SetColoredTristate(ui->toggle_linear_filter, Settings::values.filter_mode, linear_filter); - ConfigurationShared::SetColoredTristate(ui->toggle_swap_screen, Settings::values.swap_screen, - swap_screen); - ConfigurationShared::SetColoredTristate(ui->toggle_upright_screen, - Settings::values.upright_screen, upright_screen); ConfigurationShared::SetColoredTristate(ui->toggle_dump_textures, Settings::values.dump_textures, dump_textures); ConfigurationShared::SetColoredTristate(ui->toggle_custom_textures, @@ -244,8 +171,4 @@ void ConfigureEnhancements::SetupPerGameUI() { ConfigurationShared::SetColoredComboBox( ui->texture_filter_combobox, ui->widget_texture_filter, static_cast(Settings::values.texture_filter.GetValue(true))); - - ConfigurationShared::SetColoredComboBox( - ui->layout_combobox, ui->widget_layout, - static_cast(Settings::values.layout_option.GetValue(true))); } diff --git a/src/lime_qt/configuration/configure_enhancements.h b/src/lime_qt/configuration/configure_enhancements.h index c7b7425d2..d366f854a 100644 --- a/src/lime_qt/configuration/configure_enhancements.h +++ b/src/lime_qt/configuration/configure_enhancements.h @@ -39,8 +39,6 @@ private: std::unique_ptr ui; ConfigurationShared::CheckState linear_filter; - ConfigurationShared::CheckState swap_screen; - ConfigurationShared::CheckState upright_screen; ConfigurationShared::CheckState dump_textures; ConfigurationShared::CheckState custom_textures; ConfigurationShared::CheckState preload_textures; diff --git a/src/lime_qt/configuration/configure_enhancements.ui b/src/lime_qt/configuration/configure_enhancements.ui index 0e01d5dd5..86dd23d61 100644 --- a/src/lime_qt/configuration/configure_enhancements.ui +++ b/src/lime_qt/configuration/configure_enhancements.ui @@ -335,375 +335,6 @@ - - - - Layout - - - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - Screen Layout: - - - - - - - - Default - - - - - Single Screen - - - - - Large Screen - - - - - Side by Side - - - - - Separate Windows - - - - - Custom Layout - - - - - - - - - - - Swap Screens - - - - - - - Rotate Screens Upright - - - - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - Large Screen Proportion: - - - - - - - 1.000000000000000 - - - 16.000000000000000 - - - 4.000000000000000 - - - - - - - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - Background Color: - - - - - - - - 40 - 16777215 - - - - - - - - - - - - 0 - 0 - - - - Custom Layout - - - - - - - - Top Screen - - - - - - Left - - - - - - - QAbstractSpinBox::NoButtons - - - 2147483647 - - - - - - - Top - - - - - - - QAbstractSpinBox::NoButtons - - - 2147483647 - - - - - - - Right - - - - - - - QAbstractSpinBox::NoButtons - - - 2147483647 - - - - - - - Bottom - - - - - - - QAbstractSpinBox::NoButtons - - - 2147483647 - - - - - - - - - - - 0 - 0 - - - - Bottom Screen - - - - - - Left - - - - - - - QAbstractSpinBox::NoButtons - - - 2147483647 - - - - - - - Top - - - - - - - QAbstractSpinBox::NoButtons - - - 2147483647 - - - - - - - Right - - - - - - - QAbstractSpinBox::NoButtons - - - 2147483647 - - - - - - - Bottom - - - - - - - QAbstractSpinBox::NoButtons - - - 2147483647 - - - - - - - - - - - - - - <html><head/><body><p>NOTE: Values are in pixels starting from the top left corner of the display. Positive numbers only.</p></body></html> - - - - - - - - - - - Bottom Screen Opacity (OpenGL Only): - - - - - - - QAbstractSpinBox::PlusMinus - - - 10 - - - 100 - - - - - - - - - - - @@ -767,11 +398,6 @@ render_3d_combobox factor_3d mono_rendering_eye - layout_combobox - toggle_swap_screen - toggle_upright_screen - large_screen_proportion - bg_button toggle_custom_textures toggle_dump_textures toggle_preload_textures diff --git a/src/lime_qt/configuration/configure_layout.cpp b/src/lime_qt/configuration/configure_layout.cpp new file mode 100644 index 000000000..5a68dee19 --- /dev/null +++ b/src/lime_qt/configuration/configure_layout.cpp @@ -0,0 +1,124 @@ +// Copyright 2019 Citra Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#include +#include "common/settings.h" +#include "lime_qt/configuration/configuration_shared.h" +#include "lime_qt/configuration/configure_layout.h" +#include "ui_configure_layout.h" +#ifdef ENABLE_OPENGL +#include "video_core/renderer_opengl/post_processing_opengl.h" +#endif + +ConfigureLayout::ConfigureLayout(QWidget* parent) + : QWidget(parent), ui(std::make_unique()) { + ui->setupUi(this); + + SetupPerGameUI(); + SetConfiguration(); + + ui->layout_group->setEnabled(!Settings::values.custom_layout); + + ui->custom_layout_group->setEnabled( + (Settings::values.layout_option.GetValue() == Settings::LayoutOption::CustomLayout)); + connect(ui->layout_combobox, + static_cast(&QComboBox::currentIndexChanged), this, + [this](int currentIndex) { + ui->custom_layout_group->setEnabled(ui->layout_combobox->currentIndex() == 5); + }); + + connect(ui->bg_button, &QPushButton::clicked, this, [this] { + const QColor new_bg_color = QColorDialog::getColor(bg_color); + if (!new_bg_color.isValid()) { + return; + } + bg_color = new_bg_color; + QPixmap pixmap(ui->bg_button->size()); + pixmap.fill(bg_color); + const QIcon color_icon(pixmap); + ui->bg_button->setIcon(color_icon); + }); +} + +ConfigureLayout::~ConfigureLayout() = default; + +void ConfigureLayout::SetConfiguration() { + + if (!Settings::IsConfiguringGlobal()) { + ConfigurationShared::SetPerGameSetting(ui->layout_combobox, + &Settings::values.layout_option); + } else { + ui->layout_combobox->setCurrentIndex( + static_cast(Settings::values.layout_option.GetValue())); + } + + ui->toggle_swap_screen->setChecked(Settings::values.swap_screen.GetValue()); + ui->toggle_upright_screen->setChecked(Settings::values.upright_screen.GetValue()); + ui->large_screen_proportion->setValue(Settings::values.large_screen_proportion.GetValue()); + ui->custom_top_left->setValue(Settings::values.custom_top_left.GetValue()); + ui->custom_top_top->setValue(Settings::values.custom_top_top.GetValue()); + ui->custom_top_right->setValue(Settings::values.custom_top_right.GetValue()); + ui->custom_top_bottom->setValue(Settings::values.custom_top_bottom.GetValue()); + ui->custom_bottom_left->setValue(Settings::values.custom_bottom_left.GetValue()); + ui->custom_bottom_top->setValue(Settings::values.custom_bottom_top.GetValue()); + ui->custom_bottom_right->setValue(Settings::values.custom_bottom_right.GetValue()); + ui->custom_bottom_bottom->setValue(Settings::values.custom_bottom_bottom.GetValue()); + ui->custom_second_layer_opacity->setValue( + Settings::values.custom_second_layer_opacity.GetValue()); + bg_color = + QColor::fromRgbF(Settings::values.bg_red.GetValue(), Settings::values.bg_green.GetValue(), + Settings::values.bg_blue.GetValue()); + QPixmap pixmap(ui->bg_button->size()); + pixmap.fill(bg_color); + const QIcon color_icon(pixmap); + ui->bg_button->setIcon(color_icon); +} + +void ConfigureLayout::RetranslateUI() { + ui->retranslateUi(this); +} + +void ConfigureLayout::ApplyConfiguration() { + Settings::values.large_screen_proportion = ui->large_screen_proportion->value(); + + Settings::values.custom_top_left = ui->custom_top_left->value(); + Settings::values.custom_top_top = ui->custom_top_top->value(); + Settings::values.custom_top_right = ui->custom_top_right->value(); + Settings::values.custom_top_bottom = ui->custom_top_bottom->value(); + Settings::values.custom_bottom_left = ui->custom_bottom_left->value(); + Settings::values.custom_bottom_top = ui->custom_bottom_top->value(); + Settings::values.custom_bottom_right = ui->custom_bottom_right->value(); + Settings::values.custom_bottom_bottom = ui->custom_bottom_bottom->value(); + Settings::values.custom_second_layer_opacity = ui->custom_second_layer_opacity->value(); + + ConfigurationShared::ApplyPerGameSetting(&Settings::values.layout_option, ui->layout_combobox); + ConfigurationShared::ApplyPerGameSetting(&Settings::values.swap_screen, ui->toggle_swap_screen, + swap_screen); + ConfigurationShared::ApplyPerGameSetting(&Settings::values.upright_screen, + ui->toggle_upright_screen, upright_screen); + + Settings::values.bg_red = static_cast(bg_color.redF()); + Settings::values.bg_green = static_cast(bg_color.greenF()); + Settings::values.bg_blue = static_cast(bg_color.blueF()); +} + +void ConfigureLayout::SetupPerGameUI() { + // Block the global settings if a game is currently running that overrides them + if (Settings::IsConfiguringGlobal()) { + ui->toggle_swap_screen->setEnabled(Settings::values.swap_screen.UsingGlobal()); + ui->toggle_upright_screen->setEnabled(Settings::values.upright_screen.UsingGlobal()); + return; + } + + ui->bg_color_group->setVisible(false); + + ConfigurationShared::SetColoredTristate(ui->toggle_swap_screen, Settings::values.swap_screen, + swap_screen); + ConfigurationShared::SetColoredTristate(ui->toggle_upright_screen, + Settings::values.upright_screen, upright_screen); + + ConfigurationShared::SetColoredComboBox( + ui->layout_combobox, ui->widget_layout, + static_cast(Settings::values.layout_option.GetValue(true))); +} diff --git a/src/lime_qt/configuration/configure_layout.h b/src/lime_qt/configuration/configure_layout.h new file mode 100644 index 000000000..9d218438d --- /dev/null +++ b/src/lime_qt/configuration/configure_layout.h @@ -0,0 +1,44 @@ +// Copyright 2019 Citra Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once + +#include +#include +#include "common/common_types.h" + +namespace Settings { +enum class StereoRenderOption : u32; +} + +namespace ConfigurationShared { +enum class CheckState; +} + +namespace Ui { +class ConfigureLayout; +} + +class ConfigureLayout : public QWidget { + Q_OBJECT + +public: + explicit ConfigureLayout(QWidget* parent = nullptr); + ~ConfigureLayout(); + + void ApplyConfiguration(); + void RetranslateUI(); + void SetConfiguration(); + + void SetupPerGameUI(); + +private: + void updateShaders(Settings::StereoRenderOption stereo_option); + void updateTextureFilter(int index); + + std::unique_ptr ui; + ConfigurationShared::CheckState swap_screen; + ConfigurationShared::CheckState upright_screen; + QColor bg_color; +}; diff --git a/src/lime_qt/configuration/configure_layout.ui b/src/lime_qt/configuration/configure_layout.ui new file mode 100644 index 000000000..84b2dbed7 --- /dev/null +++ b/src/lime_qt/configuration/configure_layout.ui @@ -0,0 +1,423 @@ + + + ConfigureLayout + + + + 0 + 0 + 440 + 950 + + + + + 0 + 0 + + + + Form + + + + + + + 0 + 480 + + + + QFrame::NoFrame + + + 1 + + + true + + + + + 0 + 0 + 422 + 932 + + + + + + + Screens + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Screen Layout: + + + + + + + + Default + + + + + Single Screen + + + + + Large Screen + + + + + Side by Side + + + + + Separate Windows + + + + + Custom Layout + + + + + + + + + + + Swap Screens + + + + + + + Rotate Screens Upright + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Large Screen Proportion: + + + + + + + 1.000000000000000 + + + 16.000000000000000 + + + 4.000000000000000 + + + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Background Color: + + + + + + + + 40 + 16777215 + + + + + + + + + + + + 0 + 0 + + + + Custom Layout + + + + + + + + Top Screen + + + + + + Left + + + + + + + QAbstractSpinBox::NoButtons + + + 2147483647 + + + + + + + Top + + + + + + + QAbstractSpinBox::NoButtons + + + 2147483647 + + + + + + + Right + + + + + + + QAbstractSpinBox::NoButtons + + + 2147483647 + + + + + + + Bottom + + + + + + + QAbstractSpinBox::NoButtons + + + 2147483647 + + + + + + + + + + + 0 + 0 + + + + Bottom Screen + + + + + + Left + + + + + + + QAbstractSpinBox::NoButtons + + + 2147483647 + + + + + + + Top + + + + + + + QAbstractSpinBox::NoButtons + + + 2147483647 + + + + + + + Right + + + + + + + QAbstractSpinBox::NoButtons + + + 2147483647 + + + + + + + Bottom + + + + + + + QAbstractSpinBox::NoButtons + + + 2147483647 + + + + + + + + + + + + + + Bottom Screen Opacity: + + + + + + + QAbstractSpinBox::PlusMinus + + + 10 + + + 100 + + + + + + + + + + + + + + + + + + + layout_combobox + toggle_swap_screen + toggle_upright_screen + large_screen_proportion + bg_button + + + +