summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorspycrab <spycrab@users.noreply.github.com>2018-06-27 13:20:50 +0200
committerspycrab <spycrab@users.noreply.github.com>2018-06-27 13:40:39 +0200
commit4af021ea0335382de8e204964b341d1d97d85617 (patch)
tree136f3a45d9fd39399ac59d909e5dc7a53d5c3f36 /Source
parentbeeb6754d2c653c05ab5ed7def0abbfa8fb0e9c4 (diff)
Qt/PadMappingDialog: Retain previous settings
Diffstat (limited to 'Source')
-rw-r--r--Source/Core/DolphinQt2/NetPlay/PadMappingDialog.cpp29
-rw-r--r--Source/Core/DolphinQt2/NetPlay/PadMappingDialog.h1
2 files changed, 25 insertions, 5 deletions
diff --git a/Source/Core/DolphinQt2/NetPlay/PadMappingDialog.cpp b/Source/Core/DolphinQt2/NetPlay/PadMappingDialog.cpp
index f8fcde0003..7617475c91 100644
--- a/Source/Core/DolphinQt2/NetPlay/PadMappingDialog.cpp
+++ b/Source/Core/DolphinQt2/NetPlay/PadMappingDialog.cpp
@@ -45,11 +45,24 @@ void PadMappingDialog::CreateWidgets()
void PadMappingDialog::ConnectWidgets()
{
connect(m_button_box, &QDialogButtonBox::accepted, this, &QDialog::accept);
+ for (auto& combo_group : {m_gc_boxes, m_wii_boxes})
+ {
+ for (auto& combo : combo_group)
+ {
+ connect(combo, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this,
+ &PadMappingDialog::OnMappingChanged);
+ }
+ }
}
int PadMappingDialog::exec()
{
- m_players = Settings::Instance().GetNetPlayClient()->GetPlayers();
+ auto* client = Settings::Instance().GetNetPlayClient();
+ auto* server = Settings::Instance().GetNetPlayServer();
+ // Load Settings
+ m_players = client->GetPlayers();
+ m_pad_mapping = server->GetPadMapping();
+ m_wii_mapping = server->GetWiimoteMapping();
QStringList players;
@@ -63,18 +76,24 @@ int PadMappingDialog::exec()
for (auto& combo_group : {m_gc_boxes, m_wii_boxes})
{
- for (auto& combo : combo_group)
+ bool gc = combo_group == m_gc_boxes;
+ for (size_t i = 0; i < combo_group.size(); i++)
{
+ auto& combo = combo_group[i];
+ const bool old = combo->blockSignals(true);
+
combo->clear();
combo->addItems(players);
- connect(combo, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this,
- &PadMappingDialog::OnMappingChanged);
+
+ const auto index = gc ? m_pad_mapping[i] : m_wii_mapping[i];
+
+ combo->setCurrentIndex(index == -1 ? 0 : index);
+ combo->blockSignals(old);
}
}
return QDialog::exec();
}
-
PadMappingArray PadMappingDialog::GetGCPadArray()
{
return m_pad_mapping;
diff --git a/Source/Core/DolphinQt2/NetPlay/PadMappingDialog.h b/Source/Core/DolphinQt2/NetPlay/PadMappingDialog.h
index 71779f6520..3677a1f5e5 100644
--- a/Source/Core/DolphinQt2/NetPlay/PadMappingDialog.h
+++ b/Source/Core/DolphinQt2/NetPlay/PadMappingDialog.h
@@ -28,6 +28,7 @@ public:
private:
void CreateWidgets();
void ConnectWidgets();
+
void OnMappingChanged();
PadMappingArray m_pad_mapping;