diff options
| author | Techjar <tecknojar@gmail.com> | 2018-11-23 05:02:00 -0500 |
|---|---|---|
| committer | Techjar <tecknojar@gmail.com> | 2018-11-29 07:31:45 -0500 |
| commit | 577f6a5fb1174abfa75ecd2488696bc8eead8aae (patch) | |
| tree | b4867b2abb5b50bfb7e8e1ad91452509791f9581 /Source | |
| parent | 1805f51d798113fa839a8f3179360a6e4670c92f (diff) | |
Qt: Disable controller configuration while NetPlay is running
Doing pretty much anything in the controller config breaks NetPlay
(desync and/or deadlock), as saving the settings reconfigures
controller interfaces, which NetPlay doesn't expect.
Diffstat (limited to 'Source')
| -rw-r--r-- | Source/Core/DolphinQt/MainWindow.cpp | 2 | ||||
| -rw-r--r-- | Source/Core/DolphinQt/MenuBar.cpp | 7 | ||||
| -rw-r--r-- | Source/Core/DolphinQt/MenuBar.h | 1 | ||||
| -rw-r--r-- | Source/Core/DolphinQt/ToolBar.cpp | 2 |
4 files changed, 11 insertions, 1 deletions
diff --git a/Source/Core/DolphinQt/MainWindow.cpp b/Source/Core/DolphinQt/MainWindow.cpp index 6899508c17..353dbff590 100644 --- a/Source/Core/DolphinQt/MainWindow.cpp +++ b/Source/Core/DolphinQt/MainWindow.cpp @@ -275,6 +275,8 @@ void MainWindow::InitCoreCallbacks() connect(&Settings::Instance(), &Settings::EmulationStateChanged, this, [=](Core::State state) { if (state == Core::State::Uninitialized) OnStopComplete(); + if (state != Core::State::Uninitialized && NetPlay::IsNetPlayRunning() && m_controllers_window) + m_controllers_window->reject(); if (state == Core::State::Running && m_fullscreen_requested) { diff --git a/Source/Core/DolphinQt/MenuBar.cpp b/Source/Core/DolphinQt/MenuBar.cpp index 6b3e88e930..1c67569af6 100644 --- a/Source/Core/DolphinQt/MenuBar.cpp +++ b/Source/Core/DolphinQt/MenuBar.cpp @@ -32,6 +32,7 @@ #include "Core/IOS/IOS.h" #include "Core/IOS/USB/Bluetooth/BTEmu.h" #include "Core/Movie.h" +#include "Core/NetPlayProto.h" #include "Core/PowerPC/JitInterface.h" #include "Core/PowerPC/MMU.h" #include "Core/PowerPC/PPCAnalyst.h" @@ -106,6 +107,9 @@ void MenuBar::OnEmulationStateChanged(Core::State state) m_recording_stop->setEnabled(false); m_recording_play->setEnabled(!running); + // Options + m_controllers_action->setEnabled(NetPlay::IsNetPlayRunning() ? !running : true); + // Tools m_show_cheat_manager->setEnabled(Settings::Instance().GetCheatsEnabled() && running); @@ -471,7 +475,8 @@ void MenuBar::AddOptionsMenu() options_menu->addSeparator(); options_menu->addAction(tr("&Graphics Settings"), this, &MenuBar::ConfigureGraphics); options_menu->addAction(tr("&Audio Settings"), this, &MenuBar::ConfigureAudio); - options_menu->addAction(tr("&Controller Settings"), this, &MenuBar::ConfigureControllers); + m_controllers_action = + options_menu->addAction(tr("&Controller Settings"), this, &MenuBar::ConfigureControllers); options_menu->addAction(tr("&Hotkey Settings"), this, &MenuBar::ConfigureHotkeys); options_menu->addSeparator(); diff --git a/Source/Core/DolphinQt/MenuBar.h b/Source/Core/DolphinQt/MenuBar.h index eedee4b6d5..57691e17c7 100644 --- a/Source/Core/DolphinQt/MenuBar.h +++ b/Source/Core/DolphinQt/MenuBar.h @@ -215,6 +215,7 @@ private: QAction* m_boot_to_pause; QAction* m_automatic_start; QAction* m_change_font; + QAction* m_controllers_action; // View QAction* m_show_code; diff --git a/Source/Core/DolphinQt/ToolBar.cpp b/Source/Core/DolphinQt/ToolBar.cpp index d53326b79f..d646f4e1a6 100644 --- a/Source/Core/DolphinQt/ToolBar.cpp +++ b/Source/Core/DolphinQt/ToolBar.cpp @@ -8,6 +8,7 @@ #include <QIcon> #include "Core/Core.h" +#include "Core/NetPlayProto.h" #include "DolphinQt/Host.h" #include "DolphinQt/Resources.h" #include "DolphinQt/Settings.h" @@ -54,6 +55,7 @@ void ToolBar::OnEmulationStateChanged(Core::State state) m_stop_action->setEnabled(running); m_fullscreen_action->setEnabled(running); m_screenshot_action->setEnabled(running); + m_controllers_action->setEnabled(NetPlay::IsNetPlayRunning() ? !running : true); bool playing = running && state != Core::State::Paused; UpdatePausePlayButtonState(playing); |
