DolphinQt: Move Free Look out of Graphics/Hotkey and into its own configuration window. Launched from a new menu option - "Free Look Settings". The HotKeyScheduler still calls the Free Look functionality to reduce the total number of threads

This commit is contained in:
iwubcode
2020-06-12 00:27:34 -05:00
parent 9ac6090c9a
commit 9a744ab25b
18 changed files with 323 additions and 93 deletions

View File

@ -41,6 +41,7 @@
#include "Core/Config/NetplaySettings.h"
#include "Core/ConfigManager.h"
#include "Core/Core.h"
#include "Core/FreeLookManager.h"
#include "Core/HW/DVD/DVDInterface.h"
#include "Core/HW/GCKeyboard.h"
#include "Core/HW/GCPad.h"
@ -62,6 +63,7 @@
#include "DolphinQt/AboutDialog.h"
#include "DolphinQt/CheatsManager.h"
#include "DolphinQt/Config/ControllersWindow.h"
#include "DolphinQt/Config/FreeLookWindow.h"
#include "DolphinQt/Config/Graphics/GraphicsWindow.h"
#include "DolphinQt/Config/LogConfigWidget.h"
#include "DolphinQt/Config/LogWidget.h"
@ -302,6 +304,7 @@ void MainWindow::InitControllers()
Pad::Initialize();
Keyboard::Initialize();
Wiimote::Initialize(Wiimote::InitializeMode::DO_NOT_WAIT_FOR_WIIMOTES);
FreeLook::Initialize();
m_hotkey_scheduler = new HotkeyScheduler();
m_hotkey_scheduler->Start();
@ -315,6 +318,9 @@ void MainWindow::InitControllers()
Keyboard::LoadConfig();
Keyboard::GetConfig()->SaveConfig();
FreeLook::LoadInputConfig();
FreeLook::GetInputConfig()->SaveConfig();
}
void MainWindow::ShutdownControllers()
@ -325,6 +331,7 @@ void MainWindow::ShutdownControllers()
Keyboard::Shutdown();
Wiimote::Shutdown();
HotkeyManagerEmu::Shutdown();
FreeLook::Shutdown();
g_controller_interface.Shutdown();
m_hotkey_scheduler->deleteLater();
@ -479,6 +486,7 @@ void MainWindow::ConnectMenuBar()
connect(m_menu_bar, &MenuBar::ConfigureAudio, this, &MainWindow::ShowAudioWindow);
connect(m_menu_bar, &MenuBar::ConfigureControllers, this, &MainWindow::ShowControllersWindow);
connect(m_menu_bar, &MenuBar::ConfigureHotkeys, this, &MainWindow::ShowHotkeyDialog);
connect(m_menu_bar, &MenuBar::ConfigureFreelook, this, &MainWindow::ShowFreeLookWindow);
// Tools
connect(m_menu_bar, &MenuBar::ShowMemcardManager, this, &MainWindow::ShowMemcardManager);
@ -1101,6 +1109,19 @@ void MainWindow::ShowControllersWindow()
m_controllers_window->activateWindow();
}
void MainWindow::ShowFreeLookWindow()
{
if (!m_freelook_window)
{
m_freelook_window = new FreeLookWindow(this);
InstallHotkeyFilter(m_freelook_window);
}
m_freelook_window->show();
m_freelook_window->raise();
m_freelook_window->activateWindow();
}
void MainWindow::ShowSettingsWindow()
{
if (!m_settings_window)