Merge pull request #9466 from iwubcode/common_controllers_widget
DolphinQt: Move common controller interface logic to its own widget
This commit is contained in:
commit
093978b2e0
|
@ -59,6 +59,8 @@ add_executable(dolphin-emu
|
||||||
Config/CheatCodeEditor.h
|
Config/CheatCodeEditor.h
|
||||||
Config/CheatWarningWidget.cpp
|
Config/CheatWarningWidget.cpp
|
||||||
Config/CheatWarningWidget.h
|
Config/CheatWarningWidget.h
|
||||||
|
Config/CommonControllersWidget.cpp
|
||||||
|
Config/CommonControllersWidget.h
|
||||||
Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp
|
Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp
|
||||||
Config/ControllerInterface/DualShockUDPClientAddServerDialog.h
|
Config/ControllerInterface/DualShockUDPClientAddServerDialog.h
|
||||||
Config/ControllerInterface/DualShockUDPClientWidget.cpp
|
Config/ControllerInterface/DualShockUDPClientWidget.cpp
|
||||||
|
|
|
@ -0,0 +1,68 @@
|
||||||
|
// Copyright 2021 Dolphin Emulator Project
|
||||||
|
// Licensed under GPLv2+
|
||||||
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
|
#include "DolphinQt/Config/CommonControllersWidget.h"
|
||||||
|
|
||||||
|
#include <QCheckBox>
|
||||||
|
#include <QGroupBox>
|
||||||
|
#include <QPushButton>
|
||||||
|
#include <QVBoxLayout>
|
||||||
|
|
||||||
|
#include "Core/ConfigManager.h"
|
||||||
|
#include "Core/Core.h"
|
||||||
|
|
||||||
|
#include "DolphinQt/Config/ControllerInterface/ControllerInterfaceWindow.h"
|
||||||
|
|
||||||
|
CommonControllersWidget::CommonControllersWidget(QWidget* parent) : QWidget(parent)
|
||||||
|
{
|
||||||
|
CreateLayout();
|
||||||
|
LoadSettings();
|
||||||
|
ConnectWidgets();
|
||||||
|
}
|
||||||
|
|
||||||
|
void CommonControllersWidget::CreateLayout()
|
||||||
|
{
|
||||||
|
// i18n: This is "common" as in "shared", not the opposite of "uncommon"
|
||||||
|
m_common_box = new QGroupBox(tr("Common"));
|
||||||
|
m_common_layout = new QVBoxLayout();
|
||||||
|
m_common_bg_input = new QCheckBox(tr("Background Input"));
|
||||||
|
m_common_configure_controller_interface = new QPushButton(tr("Alternate Input Sources"));
|
||||||
|
|
||||||
|
m_common_layout->addWidget(m_common_bg_input);
|
||||||
|
m_common_layout->addWidget(m_common_configure_controller_interface);
|
||||||
|
|
||||||
|
m_common_box->setLayout(m_common_layout);
|
||||||
|
|
||||||
|
auto* layout = new QVBoxLayout;
|
||||||
|
layout->setMargin(0);
|
||||||
|
layout->setAlignment(Qt::AlignTop);
|
||||||
|
layout->addWidget(m_common_box);
|
||||||
|
setLayout(layout);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CommonControllersWidget::ConnectWidgets()
|
||||||
|
{
|
||||||
|
connect(m_common_bg_input, &QCheckBox::toggled, this, &CommonControllersWidget::SaveSettings);
|
||||||
|
connect(m_common_configure_controller_interface, &QPushButton::clicked, this,
|
||||||
|
&CommonControllersWidget::OnControllerInterfaceConfigure);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CommonControllersWidget::OnControllerInterfaceConfigure()
|
||||||
|
{
|
||||||
|
ControllerInterfaceWindow* window = new ControllerInterfaceWindow(this);
|
||||||
|
window->setAttribute(Qt::WA_DeleteOnClose, true);
|
||||||
|
window->setWindowModality(Qt::WindowModality::WindowModal);
|
||||||
|
window->show();
|
||||||
|
}
|
||||||
|
|
||||||
|
void CommonControllersWidget::LoadSettings()
|
||||||
|
{
|
||||||
|
m_common_bg_input->setChecked(SConfig::GetInstance().m_BackgroundInput);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CommonControllersWidget::SaveSettings()
|
||||||
|
{
|
||||||
|
SConfig::GetInstance().m_BackgroundInput = m_common_bg_input->isChecked();
|
||||||
|
SConfig::GetInstance().SaveSettings();
|
||||||
|
}
|
|
@ -0,0 +1,35 @@
|
||||||
|
// Copyright 2021 Dolphin Emulator Project
|
||||||
|
// Licensed under GPLv2+
|
||||||
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <QWidget>
|
||||||
|
|
||||||
|
#include <array>
|
||||||
|
|
||||||
|
class QCheckBox;
|
||||||
|
class QGroupBox;
|
||||||
|
class QVBoxLayout;
|
||||||
|
class QPushButton;
|
||||||
|
|
||||||
|
class CommonControllersWidget final : public QWidget
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
explicit CommonControllersWidget(QWidget* parent);
|
||||||
|
|
||||||
|
private:
|
||||||
|
void OnControllerInterfaceConfigure();
|
||||||
|
|
||||||
|
void CreateLayout();
|
||||||
|
void ConnectWidgets();
|
||||||
|
|
||||||
|
void LoadSettings();
|
||||||
|
void SaveSettings();
|
||||||
|
|
||||||
|
QGroupBox* m_common_box;
|
||||||
|
QVBoxLayout* m_common_layout;
|
||||||
|
QCheckBox* m_common_bg_input;
|
||||||
|
QPushButton* m_common_configure_controller_interface;
|
||||||
|
};
|
|
@ -31,7 +31,7 @@
|
||||||
#include "Core/IOS/IOS.h"
|
#include "Core/IOS/IOS.h"
|
||||||
#include "Core/IOS/USB/Bluetooth/BTReal.h"
|
#include "Core/IOS/USB/Bluetooth/BTReal.h"
|
||||||
|
|
||||||
#include "DolphinQt/Config/ControllerInterface/ControllerInterfaceWindow.h"
|
#include "DolphinQt/Config/CommonControllersWidget.h"
|
||||||
#include "DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.h"
|
#include "DolphinQt/Config/Mapping/GCPadWiiUConfigDialog.h"
|
||||||
#include "DolphinQt/Config/Mapping/MappingWindow.h"
|
#include "DolphinQt/Config/Mapping/MappingWindow.h"
|
||||||
#include "DolphinQt/QtUtils/ModalMessageBox.h"
|
#include "DolphinQt/QtUtils/ModalMessageBox.h"
|
||||||
|
@ -68,7 +68,7 @@ ControllersWindow::ControllersWindow(QWidget* parent) : QDialog(parent)
|
||||||
|
|
||||||
CreateGamecubeLayout();
|
CreateGamecubeLayout();
|
||||||
CreateWiimoteLayout();
|
CreateWiimoteLayout();
|
||||||
CreateCommonLayout();
|
m_common = new CommonControllersWidget(this);
|
||||||
CreateMainLayout();
|
CreateMainLayout();
|
||||||
LoadSettings();
|
LoadSettings();
|
||||||
ConnectWidgets();
|
ConnectWidgets();
|
||||||
|
@ -204,20 +204,6 @@ void ControllersWindow::CreateWiimoteLayout()
|
||||||
m_wiimote_layout->addWidget(m_wiimote_refresh, continuous_scanning_row, 3);
|
m_wiimote_layout->addWidget(m_wiimote_refresh, continuous_scanning_row, 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ControllersWindow::CreateCommonLayout()
|
|
||||||
{
|
|
||||||
// i18n: This is "common" as in "shared", not the opposite of "uncommon"
|
|
||||||
m_common_box = new QGroupBox(tr("Common"));
|
|
||||||
m_common_layout = new QVBoxLayout();
|
|
||||||
m_common_bg_input = new QCheckBox(tr("Background Input"));
|
|
||||||
m_common_configure_controller_interface = new QPushButton(tr("Alternate Input Sources"));
|
|
||||||
|
|
||||||
m_common_layout->addWidget(m_common_bg_input);
|
|
||||||
m_common_layout->addWidget(m_common_configure_controller_interface);
|
|
||||||
|
|
||||||
m_common_box->setLayout(m_common_layout);
|
|
||||||
}
|
|
||||||
|
|
||||||
void ControllersWindow::CreateMainLayout()
|
void ControllersWindow::CreateMainLayout()
|
||||||
{
|
{
|
||||||
auto* layout = new QVBoxLayout();
|
auto* layout = new QVBoxLayout();
|
||||||
|
@ -225,7 +211,7 @@ void ControllersWindow::CreateMainLayout()
|
||||||
|
|
||||||
layout->addWidget(m_gc_box);
|
layout->addWidget(m_gc_box);
|
||||||
layout->addWidget(m_wiimote_box);
|
layout->addWidget(m_wiimote_box);
|
||||||
layout->addWidget(m_common_box);
|
layout->addWidget(m_common);
|
||||||
layout->addStretch();
|
layout->addStretch();
|
||||||
layout->addWidget(m_button_box);
|
layout->addWidget(m_button_box);
|
||||||
|
|
||||||
|
@ -246,9 +232,6 @@ void ControllersWindow::ConnectWidgets()
|
||||||
connect(m_wiimote_continuous_scanning, &QCheckBox::toggled, this,
|
connect(m_wiimote_continuous_scanning, &QCheckBox::toggled, this,
|
||||||
&ControllersWindow::OnWiimoteModeChanged);
|
&ControllersWindow::OnWiimoteModeChanged);
|
||||||
|
|
||||||
connect(m_common_bg_input, &QCheckBox::toggled, this, &ControllersWindow::SaveSettings);
|
|
||||||
connect(m_common_configure_controller_interface, &QPushButton::clicked, this,
|
|
||||||
&ControllersWindow::OnControllerInterfaceConfigure);
|
|
||||||
connect(m_wiimote_continuous_scanning, &QCheckBox::toggled, this,
|
connect(m_wiimote_continuous_scanning, &QCheckBox::toggled, this,
|
||||||
&ControllersWindow::SaveSettings);
|
&ControllersWindow::SaveSettings);
|
||||||
connect(m_wiimote_real_balance_board, &QCheckBox::toggled, this,
|
connect(m_wiimote_real_balance_board, &QCheckBox::toggled, this,
|
||||||
|
@ -457,14 +440,6 @@ void ControllersWindow::OnWiimoteConfigure()
|
||||||
window->show();
|
window->show();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ControllersWindow::OnControllerInterfaceConfigure()
|
|
||||||
{
|
|
||||||
ControllerInterfaceWindow* window = new ControllerInterfaceWindow(this);
|
|
||||||
window->setAttribute(Qt::WA_DeleteOnClose, true);
|
|
||||||
window->setWindowModality(Qt::WindowModality::WindowModal);
|
|
||||||
window->show();
|
|
||||||
}
|
|
||||||
|
|
||||||
void ControllersWindow::LoadSettings()
|
void ControllersWindow::LoadSettings()
|
||||||
{
|
{
|
||||||
for (size_t i = 0; i < m_wiimote_groups.size(); i++)
|
for (size_t i = 0; i < m_wiimote_groups.size(); i++)
|
||||||
|
@ -483,8 +458,6 @@ void ControllersWindow::LoadSettings()
|
||||||
m_wiimote_ciface->setChecked(SConfig::GetInstance().connect_wiimotes_for_ciface);
|
m_wiimote_ciface->setChecked(SConfig::GetInstance().connect_wiimotes_for_ciface);
|
||||||
m_wiimote_continuous_scanning->setChecked(SConfig::GetInstance().m_WiimoteContinuousScanning);
|
m_wiimote_continuous_scanning->setChecked(SConfig::GetInstance().m_WiimoteContinuousScanning);
|
||||||
|
|
||||||
m_common_bg_input->setChecked(SConfig::GetInstance().m_BackgroundInput);
|
|
||||||
|
|
||||||
if (SConfig::GetInstance().m_bt_passthrough_enabled)
|
if (SConfig::GetInstance().m_bt_passthrough_enabled)
|
||||||
m_wiimote_passthrough->setChecked(true);
|
m_wiimote_passthrough->setChecked(true);
|
||||||
else
|
else
|
||||||
|
@ -499,7 +472,6 @@ void ControllersWindow::SaveSettings()
|
||||||
SConfig::GetInstance().connect_wiimotes_for_ciface = m_wiimote_ciface->isChecked();
|
SConfig::GetInstance().connect_wiimotes_for_ciface = m_wiimote_ciface->isChecked();
|
||||||
SConfig::GetInstance().m_WiimoteContinuousScanning = m_wiimote_continuous_scanning->isChecked();
|
SConfig::GetInstance().m_WiimoteContinuousScanning = m_wiimote_continuous_scanning->isChecked();
|
||||||
SConfig::GetInstance().m_bt_passthrough_enabled = m_wiimote_passthrough->isChecked();
|
SConfig::GetInstance().m_bt_passthrough_enabled = m_wiimote_passthrough->isChecked();
|
||||||
SConfig::GetInstance().m_BackgroundInput = m_common_bg_input->isChecked();
|
|
||||||
|
|
||||||
WiimoteCommon::SetSource(WIIMOTE_BALANCE_BOARD, m_wiimote_real_balance_board->isChecked() ?
|
WiimoteCommon::SetSource(WIIMOTE_BALANCE_BOARD, m_wiimote_real_balance_board->isChecked() ?
|
||||||
WiimoteSource::Real :
|
WiimoteSource::Real :
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
|
|
||||||
#include <array>
|
#include <array>
|
||||||
|
|
||||||
|
class CommonControllersWidget;
|
||||||
class MappingWindow;
|
class MappingWindow;
|
||||||
class QDialogButtonBox;
|
class QDialogButtonBox;
|
||||||
class QCheckBox;
|
class QCheckBox;
|
||||||
|
@ -16,7 +17,6 @@ class QHBoxLayout;
|
||||||
class QGridLayout;
|
class QGridLayout;
|
||||||
class QGroupBox;
|
class QGroupBox;
|
||||||
class QLabel;
|
class QLabel;
|
||||||
class QVBoxLayout;
|
|
||||||
class QPushButton;
|
class QPushButton;
|
||||||
class QRadioButton;
|
class QRadioButton;
|
||||||
|
|
||||||
|
@ -36,11 +36,9 @@ private:
|
||||||
void OnWiimoteRefreshPressed();
|
void OnWiimoteRefreshPressed();
|
||||||
void OnGCPadConfigure();
|
void OnGCPadConfigure();
|
||||||
void OnWiimoteConfigure();
|
void OnWiimoteConfigure();
|
||||||
void OnControllerInterfaceConfigure();
|
|
||||||
|
|
||||||
void CreateGamecubeLayout();
|
void CreateGamecubeLayout();
|
||||||
void CreateWiimoteLayout();
|
void CreateWiimoteLayout();
|
||||||
void CreateCommonLayout();
|
|
||||||
void CreateMainLayout();
|
void CreateMainLayout();
|
||||||
void ConnectWidgets();
|
void ConnectWidgets();
|
||||||
void LoadSettings();
|
void LoadSettings();
|
||||||
|
@ -75,8 +73,5 @@ private:
|
||||||
QPushButton* m_wiimote_refresh;
|
QPushButton* m_wiimote_refresh;
|
||||||
|
|
||||||
// Common
|
// Common
|
||||||
QGroupBox* m_common_box;
|
CommonControllersWidget* m_common;
|
||||||
QVBoxLayout* m_common_layout;
|
|
||||||
QCheckBox* m_common_bg_input;
|
|
||||||
QPushButton* m_common_configure_controller_interface;
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -49,6 +49,7 @@
|
||||||
<ClCompile Include="Config\ARCodeWidget.cpp" />
|
<ClCompile Include="Config\ARCodeWidget.cpp" />
|
||||||
<ClCompile Include="Config\CheatCodeEditor.cpp" />
|
<ClCompile Include="Config\CheatCodeEditor.cpp" />
|
||||||
<ClCompile Include="Config\CheatWarningWidget.cpp" />
|
<ClCompile Include="Config\CheatWarningWidget.cpp" />
|
||||||
|
<ClCompile Include="Config\CommonControllersWidget.cpp" />
|
||||||
<ClCompile Include="Config\ControllerInterface\ControllerInterfaceWindow.cpp" />
|
<ClCompile Include="Config\ControllerInterface\ControllerInterfaceWindow.cpp" />
|
||||||
<ClCompile Include="Config\ControllerInterface\DualShockUDPClientAddServerDialog.cpp" />
|
<ClCompile Include="Config\ControllerInterface\DualShockUDPClientAddServerDialog.cpp" />
|
||||||
<ClCompile Include="Config\ControllerInterface\DualShockUDPClientWidget.cpp" />
|
<ClCompile Include="Config\ControllerInterface\DualShockUDPClientWidget.cpp" />
|
||||||
|
@ -220,6 +221,7 @@
|
||||||
<QtMoc Include="CheatsManager.h" />
|
<QtMoc Include="CheatsManager.h" />
|
||||||
<QtMoc Include="Config\ARCodeWidget.h" />
|
<QtMoc Include="Config\ARCodeWidget.h" />
|
||||||
<QtMoc Include="Config\CheatWarningWidget.h" />
|
<QtMoc Include="Config\CheatWarningWidget.h" />
|
||||||
|
<QtMoc Include="Config\CommonControllersWidget.h" />
|
||||||
<QtMoc Include="Config\ControllerInterface\ControllerInterfaceWindow.h" />
|
<QtMoc Include="Config\ControllerInterface\ControllerInterfaceWindow.h" />
|
||||||
<QtMoc Include="Config\ControllerInterface\DualShockUDPClientAddServerDialog.h" />
|
<QtMoc Include="Config\ControllerInterface\DualShockUDPClientAddServerDialog.h" />
|
||||||
<QtMoc Include="Config\ControllerInterface\DualShockUDPClientWidget.h" />
|
<QtMoc Include="Config\ControllerInterface\DualShockUDPClientWidget.h" />
|
||||||
|
|
Loading…
Reference in New Issue