From d35be7ce401a80414deaf60b8e85cb0deb9ee28e Mon Sep 17 00:00:00 2001 From: Lioncash Date: Thu, 8 Jun 2023 10:49:04 -0400 Subject: [PATCH 1/4] InfinityBaseWindow: Add missing header guard Prevents potential inclusion issues. --- Source/Core/DolphinQt/InfinityBase/InfinityBaseWindow.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Source/Core/DolphinQt/InfinityBase/InfinityBaseWindow.h b/Source/Core/DolphinQt/InfinityBase/InfinityBaseWindow.h index bdb9c41501..62b2b1c7fa 100644 --- a/Source/Core/DolphinQt/InfinityBase/InfinityBaseWindow.h +++ b/Source/Core/DolphinQt/InfinityBase/InfinityBaseWindow.h @@ -1,6 +1,8 @@ // Copyright 2023 Dolphin Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + #include #include From 1f874be36e7c3398975a86108311b599380569c8 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Thu, 8 Jun 2023 10:52:34 -0400 Subject: [PATCH 2/4] InfinityBaseWindow: Remove redundant string copies tr() already returns a QString, so we don't need to construct a QString around it, and FindFigure() already returns a std::string. --- .../InfinityBase/InfinityBaseWindow.cpp | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/Source/Core/DolphinQt/InfinityBase/InfinityBaseWindow.cpp b/Source/Core/DolphinQt/InfinityBase/InfinityBaseWindow.cpp index ce51136c69..0a2d495ac6 100644 --- a/Source/Core/DolphinQt/InfinityBase/InfinityBaseWindow.cpp +++ b/Source/Core/DolphinQt/InfinityBase/InfinityBaseWindow.cpp @@ -71,19 +71,19 @@ void InfinityBaseWindow::CreateMainWindow() auto* vbox_group = new QVBoxLayout(); auto* scroll_area = new QScrollArea(); - AddFigureSlot(vbox_group, QString(tr("Play Set/Power Disc")), 0); + AddFigureSlot(vbox_group, tr("Play Set/Power Disc"), 0); add_line(vbox_group); - AddFigureSlot(vbox_group, QString(tr("Player One")), 1); + AddFigureSlot(vbox_group, tr("Player One"), 1); add_line(vbox_group); - AddFigureSlot(vbox_group, QString(tr("Player One Ability One")), 3); + AddFigureSlot(vbox_group, tr("Player One Ability One"), 3); add_line(vbox_group); - AddFigureSlot(vbox_group, QString(tr("Player One Ability Two")), 5); + AddFigureSlot(vbox_group, tr("Player One Ability Two"), 5); add_line(vbox_group); - AddFigureSlot(vbox_group, QString(tr("Player Two")), 2); + AddFigureSlot(vbox_group, tr("Player Two"), 2); add_line(vbox_group); - AddFigureSlot(vbox_group, QString(tr("Player Two Ability One")), 4); + AddFigureSlot(vbox_group, tr("Player Two Ability One"), 4); add_line(vbox_group); - AddFigureSlot(vbox_group, QString(tr("Player Two Ability Two")), 6); + AddFigureSlot(vbox_group, tr("Player Two Ability Two"), 6); m_group_figures->setLayout(vbox_group); scroll_area->setWidget(m_group_figures); @@ -199,8 +199,9 @@ CreateFigureDialog::CreateFigureDialog(QWidget* parent, u8 slot) : QDialog(paren ((slot == 3 || slot == 4 || slot == 5 || slot == 6) && (figure > 0x2DC6C0 && figure < 0x3D08FF))) { - combo_figlist->addItem(QString::fromStdString(entry.first), QVariant(figure)); - filterlist << QString::fromStdString(entry.first); + const auto figure_name = QString::fromStdString(entry.first); + combo_figlist->addItem(figure_name, QVariant(figure)); + filterlist << figure_name; if (first_entry == 0) { first_entry = figure; @@ -226,7 +227,7 @@ CreateFigureDialog::CreateFigureDialog(QWidget* parent, u8 slot) : QDialog(paren auto* hbox_idvar = new QHBoxLayout(); auto* label_id = new QLabel(tr("Figure Number:")); - auto* edit_num = new QLineEdit(QString::fromStdString(std::to_string(first_entry))); + auto* edit_num = new QLineEdit(QString::number(first_entry)); auto* rxv = new QRegularExpressionValidator(QRegularExpression(QStringLiteral("\\d*")), this); edit_num->setValidator(rxv); hbox_idvar->addWidget(label_id); @@ -263,7 +264,7 @@ CreateFigureDialog::CreateFigureDialog(QWidget* parent, u8 slot) : QDialog(paren const auto found_fig = system.GetInfinityBase().FindFigure(char_number); if (!found_fig.empty()) { - predef_name += QString::fromStdString(std::string(found_fig) + ".bin"); + predef_name += QString::fromStdString(found_fig + ".bin"); } else { From d092381d25d25b97fb2a7358070ad6c25648b97d Mon Sep 17 00:00:00 2001 From: Lioncash Date: Thu, 8 Jun 2023 10:55:27 -0400 Subject: [PATCH 3/4] InfinityBaseWindow: Collapse lambda into direct member pointer The parameters to this match the requirements of the toggled() function exactly, so we can pass the function directly into the connect call. --- Source/Core/DolphinQt/InfinityBase/InfinityBaseWindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Core/DolphinQt/InfinityBase/InfinityBaseWindow.cpp b/Source/Core/DolphinQt/InfinityBase/InfinityBaseWindow.cpp index 0a2d495ac6..3d6a3a7d3c 100644 --- a/Source/Core/DolphinQt/InfinityBase/InfinityBaseWindow.cpp +++ b/Source/Core/DolphinQt/InfinityBase/InfinityBaseWindow.cpp @@ -55,7 +55,7 @@ void InfinityBaseWindow::CreateMainWindow() checkbox_layout->setAlignment(Qt::AlignHCenter); m_checkbox = new QCheckBox(tr("Emulate Infinity Base"), this); m_checkbox->setChecked(Config::Get(Config::MAIN_EMULATE_INFINITY_BASE)); - connect(m_checkbox, &QCheckBox::toggled, [=](bool checked) { EmulateBase(checked); }); + connect(m_checkbox, &QCheckBox::toggled, this, &InfinityBaseWindow::EmulateBase); checkbox_layout->addWidget(m_checkbox); checkbox_group->setLayout(checkbox_layout); main_layout->addWidget(checkbox_group); From fae5ca39adb31e55a73b929b723cfc31545ebabf Mon Sep 17 00:00:00 2001 From: Lioncash Date: Thu, 8 Jun 2023 11:05:24 -0400 Subject: [PATCH 4/4] InfinityBaseWindow: Move core headers into cpp file Restricts the headers to the cpp file where they're needed and prevents the headers from "leaking" into other translation units. --- .../DolphinQt/InfinityBase/InfinityBaseWindow.cpp | 4 ++++ .../Core/DolphinQt/InfinityBase/InfinityBaseWindow.h | 11 +++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/Source/Core/DolphinQt/InfinityBase/InfinityBaseWindow.cpp b/Source/Core/DolphinQt/InfinityBase/InfinityBaseWindow.cpp index 3d6a3a7d3c..e0642b14a4 100644 --- a/Source/Core/DolphinQt/InfinityBase/InfinityBaseWindow.cpp +++ b/Source/Core/DolphinQt/InfinityBase/InfinityBaseWindow.cpp @@ -3,6 +3,8 @@ #include "DolphinQt/InfinityBase/InfinityBaseWindow.h" +#include + #include #include #include @@ -19,6 +21,8 @@ #include "Common/IOFile.h" #include "Core/Config/MainSettings.h" +#include "Core/Core.h" +#include "Core/IOS/USB/Emulated/Infinity.h" #include "Core/System.h" #include "DolphinQt/QtUtils/DolphinFileDialog.h" diff --git a/Source/Core/DolphinQt/InfinityBase/InfinityBaseWindow.h b/Source/Core/DolphinQt/InfinityBase/InfinityBaseWindow.h index 62b2b1c7fa..b66e17d0f6 100644 --- a/Source/Core/DolphinQt/InfinityBase/InfinityBaseWindow.h +++ b/Source/Core/DolphinQt/InfinityBase/InfinityBaseWindow.h @@ -4,18 +4,21 @@ #pragma once #include -#include #include -#include #include -#include "Core/Core.h" -#include "Core/IOS/USB/Emulated/Infinity.h" +#include "Common/CommonTypes.h" class QCheckBox; class QGroupBox; class QLineEdit; +class QVBoxLayout; + +namespace Core +{ +enum class State; +} class InfinityBaseWindow : public QWidget {