mirror of
https://github.com/yuzu-emu/yuzu-android.git
synced 2025-07-07 03:48:01 -05:00
Address feedback
This commit is contained in:
@ -6,10 +6,10 @@
|
||||
#include "yuzu/configuration/configure_debug_controller.h"
|
||||
|
||||
ConfigureDebugController::ConfigureDebugController(QWidget* parent)
|
||||
: QDialog(parent), ui(std::make_unique<Ui::ConfigureDebugController>()) {
|
||||
: QDialog(parent), ui(std::make_unique<Ui::ConfigureDebugController>()),
|
||||
debug_controller(new ConfigureInputPlayer(this, 9, nullptr, true)) {
|
||||
ui->setupUi(this);
|
||||
|
||||
debug_controller = new ConfigureInputPlayer(this, 9, nullptr, true);
|
||||
ui->controllerLayout->addWidget(debug_controller);
|
||||
|
||||
connect(ui->clear_all_button, &QPushButton::clicked, this,
|
||||
|
@ -27,7 +27,7 @@ private:
|
||||
void changeEvent(QEvent* event) override;
|
||||
void RetranslateUI();
|
||||
|
||||
ConfigureInputPlayer* debug_controller;
|
||||
|
||||
std::unique_ptr<Ui::ConfigureDebugController> ui;
|
||||
|
||||
ConfigureInputPlayer* debug_controller;
|
||||
};
|
||||
|
@ -103,13 +103,14 @@ ConfigureInput::ConfigureInput(QWidget* parent)
|
||||
}
|
||||
});
|
||||
connect(player_controllers[i], &ConfigureInputPlayer::RefreshInputDevices,
|
||||
[&] { UpdateAllInputDevices(); });
|
||||
connect(player_connected[i], &QCheckBox::stateChanged,
|
||||
[&, i](int state) { player_controllers[i]->ConnectPlayer(state == Qt::Checked); });
|
||||
[this] { UpdateAllInputDevices(); });
|
||||
connect(player_connected[i], &QCheckBox::stateChanged, [this, i](int state) {
|
||||
player_controllers[i]->ConnectPlayer(state == Qt::Checked);
|
||||
});
|
||||
}
|
||||
// Only the first player can choose handheld mode so connect the signal just to player 1
|
||||
connect(player_controllers[0], &ConfigureInputPlayer::HandheldStateChanged,
|
||||
[&](bool is_handheld) { UpdateDockedState(is_handheld); });
|
||||
[this](bool is_handheld) { UpdateDockedState(is_handheld); });
|
||||
|
||||
advanced = new ConfigureInputAdvanced(this);
|
||||
ui->tabAdvanced->setLayout(new QHBoxLayout(ui->tabAdvanced));
|
||||
@ -182,14 +183,14 @@ void ConfigureInput::LoadPlayerControllerIndices() {
|
||||
void ConfigureInput::ClearAll() {
|
||||
// We don't have a good way to know what tab is active, but we can find out by getting the
|
||||
// parent of the consoleInputSettings
|
||||
auto player_tab = static_cast<ConfigureInputPlayer*>(ui->consoleInputSettings->parent());
|
||||
auto* player_tab = static_cast<ConfigureInputPlayer*>(ui->consoleInputSettings->parent());
|
||||
player_tab->ClearAll();
|
||||
}
|
||||
|
||||
void ConfigureInput::RestoreDefaults() {
|
||||
// We don't have a good way to know what tab is active, but we can find out by getting the
|
||||
// parent of the consoleInputSettings
|
||||
auto player_tab = static_cast<ConfigureInputPlayer*>(ui->consoleInputSettings->parent());
|
||||
auto* player_tab = static_cast<ConfigureInputPlayer*>(ui->consoleInputSettings->parent());
|
||||
player_tab->RestoreDefaults();
|
||||
|
||||
ui->radioDocked->setChecked(true);
|
||||
|
@ -15,9 +15,9 @@
|
||||
|
||||
#include "ui_configure_input.h"
|
||||
|
||||
class QCheckBox;
|
||||
class QString;
|
||||
class QTimer;
|
||||
class QCheckBox;
|
||||
|
||||
namespace Ui {
|
||||
class ConfigureInput;
|
||||
|
@ -9,7 +9,7 @@
|
||||
#include "yuzu/configuration/configure_input_advanced.h"
|
||||
|
||||
ConfigureInputAdvanced::ConfigureInputAdvanced(QWidget* parent)
|
||||
: QWidget(parent), ui(new Ui::ConfigureInputAdvanced) {
|
||||
: QWidget(parent), ui(std::make_unique<Ui::ConfigureInputAdvanced>()) {
|
||||
ui->setupUi(this);
|
||||
|
||||
controllers_color_buttons = {{
|
||||
|
@ -4,6 +4,7 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <array>
|
||||
#include <memory>
|
||||
#include <QWidget>
|
||||
|
||||
|
@ -348,22 +348,22 @@ ConfigureInputPlayer::ConfigureInputPlayer(QWidget* parent, std::size_t player_i
|
||||
|
||||
// Player Connected checkbox
|
||||
connect(ui->groupConnectedController, &QGroupBox::toggled,
|
||||
[&](bool checked) { emit Connected(checked); });
|
||||
[this](bool checked) { emit Connected(checked); });
|
||||
|
||||
// Set up controller type. Only Player 1 can choose Handheld.
|
||||
ui->comboControllerType->clear();
|
||||
|
||||
QStringList controller_types = {
|
||||
QStringLiteral("Pro Controller"),
|
||||
QStringLiteral("Dual Joycons"),
|
||||
QStringLiteral("Left Joycon"),
|
||||
QStringLiteral("Right Joycon"),
|
||||
tr("Pro Controller"),
|
||||
tr("Dual Joycons"),
|
||||
tr("Left Joycon"),
|
||||
tr("Right Joycon"),
|
||||
};
|
||||
|
||||
if (player_index == 0) {
|
||||
controller_types.append(QStringLiteral("Handheld"));
|
||||
controller_types.append(tr("Handheld"));
|
||||
connect(ui->comboControllerType, qOverload<int>(&QComboBox::currentIndexChanged),
|
||||
[&](int index) {
|
||||
[this](int index) {
|
||||
emit HandheldStateChanged(GetControllerTypeFromIndex(index) ==
|
||||
Settings::ControllerType::Handheld);
|
||||
});
|
||||
@ -375,7 +375,7 @@ ConfigureInputPlayer::ConfigureInputPlayer(QWidget* parent, std::size_t player_i
|
||||
ui->buttonHome->setEnabled(false);
|
||||
ui->groupConnectedController->setCheckable(false);
|
||||
QStringList debug_controller_types = {
|
||||
QStringLiteral("Pro Controller"),
|
||||
tr("Pro Controller"),
|
||||
};
|
||||
ui->comboControllerType->addItems(debug_controller_types);
|
||||
} else {
|
||||
@ -384,17 +384,18 @@ ConfigureInputPlayer::ConfigureInputPlayer(QWidget* parent, std::size_t player_i
|
||||
|
||||
UpdateControllerIcon();
|
||||
UpdateControllerAvailableButtons();
|
||||
connect(ui->comboControllerType, qOverload<int>(&QComboBox::currentIndexChanged), [&](int) {
|
||||
connect(ui->comboControllerType, qOverload<int>(&QComboBox::currentIndexChanged), [this](int) {
|
||||
UpdateControllerIcon();
|
||||
UpdateControllerAvailableButtons();
|
||||
});
|
||||
|
||||
connect(ui->comboDevices, qOverload<int>(&QComboBox::currentIndexChanged),
|
||||
[&] { UpdateMappingWithDefaults(); });
|
||||
connect(ui->comboDevices, qOverload<int>(&QComboBox::currentIndexChanged), this,
|
||||
&ConfigureInputPlayer::UpdateMappingWithDefaults);
|
||||
|
||||
ui->buttonRefreshDevices->setIcon(QIcon::fromTheme(QStringLiteral("view-refresh")));
|
||||
UpdateInputDevices();
|
||||
connect(ui->buttonRefreshDevices, &QPushButton::clicked, [&] { emit RefreshInputDevices(); });
|
||||
connect(ui->buttonRefreshDevices, &QPushButton::clicked,
|
||||
[this] { emit RefreshInputDevices(); });
|
||||
|
||||
timeout_timer->setSingleShot(true);
|
||||
connect(timeout_timer.get(), &QTimer::timeout, [this] { SetPollingResult({}, true); });
|
||||
@ -707,26 +708,22 @@ void ConfigureInputPlayer::keyPressEvent(QKeyEvent* event) {
|
||||
void ConfigureInputPlayer::UpdateControllerIcon() {
|
||||
// We aren't using Qt's built in theme support here since we aren't drawing an icon (and its
|
||||
// "nonstandard" to use an image through the icon support)
|
||||
QString stylesheet{};
|
||||
switch (GetControllerTypeFromIndex(ui->comboControllerType->currentIndex())) {
|
||||
case Settings::ControllerType::ProController:
|
||||
stylesheet = QStringLiteral("image: url(:/controller/pro_controller%0)");
|
||||
break;
|
||||
case Settings::ControllerType::DualJoyconDetached:
|
||||
stylesheet = QStringLiteral("image: url(:/controller/dual_joycon%0)");
|
||||
break;
|
||||
case Settings::ControllerType::LeftJoycon:
|
||||
stylesheet = QStringLiteral("image: url(:/controller/single_joycon_left_vertical%0)");
|
||||
break;
|
||||
case Settings::ControllerType::RightJoycon:
|
||||
stylesheet = QStringLiteral("image: url(:/controller/single_joycon_right_vertical%0)");
|
||||
break;
|
||||
case Settings::ControllerType::Handheld:
|
||||
stylesheet = QStringLiteral("image: url(:/controller/handheld%0)");
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
const QString stylesheet = [this] {
|
||||
switch (GetControllerTypeFromIndex(ui->comboControllerType->currentIndex())) {
|
||||
case Settings::ControllerType::ProController:
|
||||
return QStringLiteral("image: url(:/controller/pro_controller%0)");
|
||||
case Settings::ControllerType::DualJoyconDetached:
|
||||
return QStringLiteral("image: url(:/controller/dual_joycon%0)");
|
||||
case Settings::ControllerType::LeftJoycon:
|
||||
return QStringLiteral("image: url(:/controller/single_joycon_left_vertical%0)");
|
||||
case Settings::ControllerType::RightJoycon:
|
||||
return QStringLiteral("image: url(:/controller/single_joycon_right_vertical%0)");
|
||||
case Settings::ControllerType::Handheld:
|
||||
return QStringLiteral("image: url(:/controller/handheld%0)");
|
||||
default:
|
||||
return QString{};
|
||||
}
|
||||
}();
|
||||
|
||||
const QString theme = [this] {
|
||||
if (QIcon::themeName().contains(QStringLiteral("dark"))) {
|
||||
@ -744,12 +741,12 @@ void ConfigureInputPlayer::UpdateControllerIcon() {
|
||||
void ConfigureInputPlayer::UpdateControllerAvailableButtons() {
|
||||
auto layout = GetControllerTypeFromIndex(ui->comboControllerType->currentIndex());
|
||||
if (debug) {
|
||||
layout = Settings::ControllerType::DualJoyconDetached;
|
||||
layout = Settings::ControllerType::ProController;
|
||||
}
|
||||
|
||||
// List of all the widgets that will be hidden by any of the following layouts that need
|
||||
// "unhidden" after the controller type changes
|
||||
const std::vector<QWidget*> layout_show = {
|
||||
const std::array<QWidget*, 9> layout_show = {
|
||||
ui->buttonShoulderButtonsSLSR,
|
||||
ui->horizontalSpacerShoulderButtonsWidget,
|
||||
ui->horizontalSpacerShoulderButtonsWidget2,
|
||||
@ -768,11 +765,6 @@ void ConfigureInputPlayer::UpdateControllerAvailableButtons() {
|
||||
std::vector<QWidget*> layout_hidden;
|
||||
switch (layout) {
|
||||
case Settings::ControllerType::ProController:
|
||||
layout_hidden = {
|
||||
ui->buttonShoulderButtonsSLSR,
|
||||
ui->horizontalSpacerShoulderButtonsWidget2,
|
||||
};
|
||||
break;
|
||||
case Settings::ControllerType::DualJoyconDetached:
|
||||
case Settings::ControllerType::Handheld:
|
||||
layout_hidden = {
|
||||
|
Reference in New Issue
Block a user