configure_input: Use unique pointers for player_controllers array
This commit is contained in:
@@ -76,22 +76,22 @@ void ConfigureInput::Initialize(InputCommon::InputSubsystem* input_subsystem,
|
|||||||
const bool is_powered_on = system.IsPoweredOn();
|
const bool is_powered_on = system.IsPoweredOn();
|
||||||
auto& hid_core = system.HIDCore();
|
auto& hid_core = system.HIDCore();
|
||||||
player_controllers = {
|
player_controllers = {
|
||||||
new ConfigureInputPlayer(this, 0, ui->consoleInputSettings, input_subsystem, profiles.get(),
|
std::make_unique<ConfigureInputPlayer>(this, 0, ui->consoleInputSettings, input_subsystem,
|
||||||
hid_core, is_powered_on),
|
profiles.get(), hid_core, is_powered_on),
|
||||||
new ConfigureInputPlayer(this, 1, ui->consoleInputSettings, input_subsystem, profiles.get(),
|
std::make_unique<ConfigureInputPlayer>(this, 1, ui->consoleInputSettings, input_subsystem,
|
||||||
hid_core, is_powered_on),
|
profiles.get(), hid_core, is_powered_on),
|
||||||
new ConfigureInputPlayer(this, 2, ui->consoleInputSettings, input_subsystem, profiles.get(),
|
std::make_unique<ConfigureInputPlayer>(this, 2, ui->consoleInputSettings, input_subsystem,
|
||||||
hid_core, is_powered_on),
|
profiles.get(), hid_core, is_powered_on),
|
||||||
new ConfigureInputPlayer(this, 3, ui->consoleInputSettings, input_subsystem, profiles.get(),
|
std::make_unique<ConfigureInputPlayer>(this, 3, ui->consoleInputSettings, input_subsystem,
|
||||||
hid_core, is_powered_on),
|
profiles.get(), hid_core, is_powered_on),
|
||||||
new ConfigureInputPlayer(this, 4, ui->consoleInputSettings, input_subsystem, profiles.get(),
|
std::make_unique<ConfigureInputPlayer>(this, 4, ui->consoleInputSettings, input_subsystem,
|
||||||
hid_core, is_powered_on),
|
profiles.get(), hid_core, is_powered_on),
|
||||||
new ConfigureInputPlayer(this, 5, ui->consoleInputSettings, input_subsystem, profiles.get(),
|
std::make_unique<ConfigureInputPlayer>(this, 5, ui->consoleInputSettings, input_subsystem,
|
||||||
hid_core, is_powered_on),
|
profiles.get(), hid_core, is_powered_on),
|
||||||
new ConfigureInputPlayer(this, 6, ui->consoleInputSettings, input_subsystem, profiles.get(),
|
std::make_unique<ConfigureInputPlayer>(this, 6, ui->consoleInputSettings, input_subsystem,
|
||||||
hid_core, is_powered_on),
|
profiles.get(), hid_core, is_powered_on),
|
||||||
new ConfigureInputPlayer(this, 7, ui->consoleInputSettings, input_subsystem, profiles.get(),
|
std::make_unique<ConfigureInputPlayer>(this, 7, ui->consoleInputSettings, input_subsystem,
|
||||||
hid_core, is_powered_on),
|
profiles.get(), hid_core, is_powered_on),
|
||||||
};
|
};
|
||||||
|
|
||||||
player_tabs = {
|
player_tabs = {
|
||||||
@@ -111,9 +111,10 @@ void ConfigureInput::Initialize(InputCommon::InputSubsystem* input_subsystem,
|
|||||||
};
|
};
|
||||||
|
|
||||||
for (std::size_t i = 0; i < player_tabs.size(); ++i) {
|
for (std::size_t i = 0; i < player_tabs.size(); ++i) {
|
||||||
|
auto* player_controller_ptr = player_controllers[i].get();
|
||||||
player_tabs[i]->setLayout(new QHBoxLayout(player_tabs[i]));
|
player_tabs[i]->setLayout(new QHBoxLayout(player_tabs[i]));
|
||||||
player_tabs[i]->layout()->addWidget(player_controllers[i]);
|
player_tabs[i]->layout()->addWidget(player_controller_ptr);
|
||||||
connect(player_controllers[i], &ConfigureInputPlayer::Connected, [&, i](bool is_connected) {
|
connect(player_controller_ptr, &ConfigureInputPlayer::Connected, [&, i](bool is_connected) {
|
||||||
// Ensures that the controllers are always connected in sequential order
|
// Ensures that the controllers are always connected in sequential order
|
||||||
if (is_connected) {
|
if (is_connected) {
|
||||||
for (std::size_t index = 0; index <= i; ++index) {
|
for (std::size_t index = 0; index <= i; ++index) {
|
||||||
@@ -125,9 +126,9 @@ void ConfigureInput::Initialize(InputCommon::InputSubsystem* input_subsystem,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
connect(player_controllers[i], &ConfigureInputPlayer::RefreshInputDevices, this,
|
connect(player_controller_ptr, &ConfigureInputPlayer::RefreshInputDevices, this,
|
||||||
&ConfigureInput::UpdateAllInputDevices);
|
&ConfigureInput::UpdateAllInputDevices);
|
||||||
connect(player_controllers[i], &ConfigureInputPlayer::RefreshInputProfiles, this,
|
connect(player_controller_ptr, &ConfigureInputPlayer::RefreshInputProfiles, this,
|
||||||
&ConfigureInput::UpdateAllInputProfiles, Qt::QueuedConnection);
|
&ConfigureInput::UpdateAllInputProfiles, Qt::QueuedConnection);
|
||||||
connect(player_connected[i], &QCheckBox::stateChanged, [this, i](int state) {
|
connect(player_connected[i], &QCheckBox::stateChanged, [this, i](int state) {
|
||||||
player_controllers[i]->ConnectPlayer(state == Qt::Checked);
|
player_controllers[i]->ConnectPlayer(state == Qt::Checked);
|
||||||
@@ -141,7 +142,7 @@ void ConfigureInput::Initialize(InputCommon::InputSubsystem* input_subsystem,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Only the first player can choose handheld mode so connect the signal just to player 1
|
// Only the first player can choose handheld mode so connect the signal just to player 1
|
||||||
connect(player_controllers[0], &ConfigureInputPlayer::HandheldStateChanged,
|
connect(player_controllers[0].get(), &ConfigureInputPlayer::HandheldStateChanged,
|
||||||
[this](bool is_handheld) { UpdateDockedState(is_handheld); });
|
[this](bool is_handheld) { UpdateDockedState(is_handheld); });
|
||||||
|
|
||||||
advanced = new ConfigureInputAdvanced(this);
|
advanced = new ConfigureInputAdvanced(this);
|
||||||
@@ -189,7 +190,7 @@ QList<QWidget*> ConfigureInput::GetSubTabs() const {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ConfigureInput::ApplyConfiguration() {
|
void ConfigureInput::ApplyConfiguration() {
|
||||||
for (auto* controller : player_controllers) {
|
for (const auto& controller : player_controllers) {
|
||||||
controller->ApplyConfiguration();
|
controller->ApplyConfiguration();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ private:
|
|||||||
|
|
||||||
std::unique_ptr<InputProfiles> profiles;
|
std::unique_ptr<InputProfiles> profiles;
|
||||||
|
|
||||||
std::array<ConfigureInputPlayer*, 8> player_controllers;
|
std::array<std::unique_ptr<ConfigureInputPlayer>, 8> player_controllers;
|
||||||
std::array<QWidget*, 8> player_tabs;
|
std::array<QWidget*, 8> player_tabs;
|
||||||
std::array<QCheckBox*, 8> player_connected;
|
std::array<QCheckBox*, 8> player_connected;
|
||||||
ConfigureInputAdvanced* advanced;
|
ConfigureInputAdvanced* advanced;
|
||||||
|
|||||||
Reference in New Issue
Block a user