summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorTechjar <tecknojar@gmail.com>2018-11-23 05:02:00 -0500
committerTechjar <tecknojar@gmail.com>2018-11-29 07:31:45 -0500
commit577f6a5fb1174abfa75ecd2488696bc8eead8aae (patch)
treeb4867b2abb5b50bfb7e8e1ad91452509791f9581 /Source
parent1805f51d798113fa839a8f3179360a6e4670c92f (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.cpp2
-rw-r--r--Source/Core/DolphinQt/MenuBar.cpp7
-rw-r--r--Source/Core/DolphinQt/MenuBar.h1
-rw-r--r--Source/Core/DolphinQt/ToolBar.cpp2
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);