summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorspycrab <spycrab@users.noreply.github.com>2018-06-29 01:01:42 +0200
committerGitHub <noreply@github.com>2018-06-29 01:01:42 +0200
commit3eef8145d2206ea16fd074c8cd4318a3692d95e1 (patch)
treef354f4de4dbff193306b1a5d379d5a6f69c12103 /Source
parent6700cc4234546f1fb80f4bdb42d2568c2cb3043a (diff)
parent4af021ea0335382de8e204964b341d1d97d85617 (diff)
Merge pull request #7172 from spycrab/qt_np_map
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;