diff --git a/Source/Core/DolphinQt/Config/PropertiesDialog.cpp b/Source/Core/DolphinQt/Config/PropertiesDialog.cpp index d82a843285..f95edf40c6 100644 --- a/Source/Core/DolphinQt/Config/PropertiesDialog.cpp +++ b/Source/Core/DolphinQt/Config/PropertiesDialog.cpp @@ -7,7 +7,6 @@ #include #include -#include #include #include "DiscIO/Enums.h" @@ -24,28 +23,22 @@ #include "DolphinQt/QtUtils/WrapInScrollArea.h" #include "UICommon/GameFile.h" -#include "VideoCommon/VideoConfig.h" PropertiesDialog::PropertiesDialog(QWidget* parent, const UICommon::GameFile& game) - : QDialog(parent) + : StackedSettingsWindow{parent} { setWindowTitle(QStringLiteral("%1: %2 - %3") .arg(QString::fromStdString(game.GetFileName()), QString::fromStdString(game.GetGameID()), QString::fromStdString(game.GetLongName()))); - setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); - QVBoxLayout* layout = new QVBoxLayout(); - - QTabWidget* tab_widget = new QTabWidget(this); - InfoWidget* info = new InfoWidget(game); - - ARCodeWidget* ar = new ARCodeWidget(game.GetGameID(), game.GetRevision()); - GeckoCodeWidget* gecko = + auto* const info = new InfoWidget(game); + auto* const ar = new ARCodeWidget(game.GetGameID(), game.GetRevision()); + auto* const gecko = new GeckoCodeWidget(game.GetGameID(), game.GetGameTDBID(), game.GetRevision()); - PatchesWidget* patches = new PatchesWidget(game); - GameConfigWidget* game_config = new GameConfigWidget(game); - GraphicsModListWidget* graphics_mod_list = new GraphicsModListWidget(game); + auto* const patches = new PatchesWidget(game); + auto* const game_config = new GameConfigWidget(game); + auto* const graphics_mod_list = new GraphicsModListWidget(game); connect(gecko, &GeckoCodeWidget::OpenGeneralSettings, this, &PropertiesDialog::OpenGeneralSettings); @@ -63,45 +56,31 @@ PropertiesDialog::PropertiesDialog(QWidget* parent, const UICommon::GameFile& ga connect(graphics_mod_list, &GraphicsModListWidget::OpenGraphicsSettings, this, &PropertiesDialog::OpenGraphicsSettings); - const int padding_width = 120; - const int padding_height = 100; - tab_widget->addTab(GetWrappedWidget(info, this, padding_width, padding_height), tr("Info")); - tab_widget->addTab(GetWrappedWidget(game_config, this, padding_width, padding_height), - tr("Game Config")); - tab_widget->addTab(GetWrappedWidget(patches, this, padding_width, padding_height), tr("Patches")); - tab_widget->addTab(GetWrappedWidget(ar, this, padding_width, padding_height), tr("AR Codes")); - tab_widget->addTab(GetWrappedWidget(gecko, this, padding_width, padding_height), - tr("Gecko Codes")); - tab_widget->addTab(GetWrappedWidget(graphics_mod_list, this, padding_width, padding_height), - tr("Graphics Mods")); + // Note: Intentional selective use of AddWrappedPane for a sensible dialog "minimumSize". + AddWrappedPane(info, tr("Info")); + AddPane(game_config, tr("Game Config")); + AddPane(patches, tr("Patches")); + AddPane(ar, tr("AR Codes")); + AddPane(gecko, tr("Gecko Codes")); + AddWrappedPane(graphics_mod_list, tr("Graphics Mods")); if (game.GetPlatform() != DiscIO::Platform::ELFOrDOL) { std::shared_ptr volume = DiscIO::CreateVolume(game.GetFilePath()); if (volume) { - VerifyWidget* verify = new VerifyWidget(volume); - tab_widget->addTab(GetWrappedWidget(verify, this, padding_width, padding_height), - tr("Verify")); + auto* const verify = new VerifyWidget(volume); + AddPane(verify, tr("Verify")); if (DiscIO::IsDisc(game.GetPlatform())) { - FilesystemWidget* filesystem = new FilesystemWidget(volume); - tab_widget->addTab(GetWrappedWidget(filesystem, this, padding_width, padding_height), - tr("Filesystem")); + auto* const filesystem = new FilesystemWidget(volume); + AddPane(filesystem, tr("Filesystem")); } } } - layout->addWidget(tab_widget); + connect(this, &QDialog::rejected, graphics_mod_list, &GraphicsModListWidget::SaveToDisk); - QDialogButtonBox* close_box = new QDialogButtonBox(QDialogButtonBox::Close); - - connect(close_box, &QDialogButtonBox::rejected, this, &QDialog::reject); - connect(close_box, &QDialogButtonBox::rejected, graphics_mod_list, - &GraphicsModListWidget::SaveToDisk); - - layout->addWidget(close_box); - - setLayout(layout); + OnDoneCreatingPanes(); } diff --git a/Source/Core/DolphinQt/Config/PropertiesDialog.h b/Source/Core/DolphinQt/Config/PropertiesDialog.h index 29d282a6e8..9079ed925a 100644 --- a/Source/Core/DolphinQt/Config/PropertiesDialog.h +++ b/Source/Core/DolphinQt/Config/PropertiesDialog.h @@ -5,12 +5,14 @@ #include +#include "DolphinQt/Config/SettingsWindow.h" + namespace UICommon { class GameFile; } -class PropertiesDialog final : public QDialog +class PropertiesDialog final : public StackedSettingsWindow { Q_OBJECT public: