Address feedback

This commit is contained in:
Morph
2020-08-15 15:26:29 -04:00
parent fc505110f1
commit efa0b7a056
13 changed files with 77 additions and 96 deletions

View File

@ -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 = {