From a84cc1d3bb5b7c3ab2186b90edbd77dcb2af0af6 Mon Sep 17 00:00:00 2001 From: Megamouse Date: Tue, 19 Sep 2017 20:07:04 +0200 Subject: [PATCH] Qt: move Render_Info to emu_settings.h --- rpcs3/rpcs3_app.cpp | 3 +- rpcs3/rpcs3_app.h | 2 ++ rpcs3/rpcs3qt/emu_settings.cpp | 24 +++++++++---- rpcs3/rpcs3qt/emu_settings.h | 59 ++++++++++++++++++++++--------- rpcs3/rpcs3qt/game_list_frame.cpp | 6 ++-- rpcs3/rpcs3qt/game_list_frame.h | 4 +-- rpcs3/rpcs3qt/main_window.cpp | 9 ++--- rpcs3/rpcs3qt/main_window.h | 5 ++- rpcs3/rpcs3qt/settings_dialog.cpp | 39 +++++++++----------- rpcs3/rpcs3qt/settings_dialog.h | 23 ++---------- rpcs3/rpcs3qt/vfs_dialog.cpp | 16 +++++---- rpcs3/rpcs3qt/vfs_dialog.h | 6 ++-- rpcs3/rpcs3qt/vfs_dialog_tab.cpp | 6 ++-- rpcs3/rpcs3qt/vfs_dialog_tab.h | 6 ++-- 14 files changed, 113 insertions(+), 95 deletions(-) diff --git a/rpcs3/rpcs3_app.cpp b/rpcs3/rpcs3_app.cpp index 3fff679ee3..64afbe9684 100644 --- a/rpcs3/rpcs3_app.cpp +++ b/rpcs3/rpcs3_app.cpp @@ -63,9 +63,10 @@ void rpcs3_app::Init() Emu.Init(); guiSettings.reset(new gui_settings()); + emuSettings.reset(new emu_settings()); // Create the main window - RPCS3MainWin = new main_window(guiSettings, nullptr); + RPCS3MainWin = new main_window(guiSettings, emuSettings, nullptr); // Create callbacks from the emulator, which reference the handlers. InitializeCallbacks(); diff --git a/rpcs3/rpcs3_app.h b/rpcs3/rpcs3_app.h index fdb620cfaf..6bc7c97bcf 100644 --- a/rpcs3/rpcs3_app.h +++ b/rpcs3/rpcs3_app.h @@ -16,6 +16,7 @@ #include "rpcs3qt/msg_dialog_frame.h" #include "rpcs3qt/main_window.h" #include "rpcs3qt/gui_settings.h" +#include "rpcs3qt/emu_settings.h" #include @@ -48,5 +49,6 @@ private: main_window* RPCS3MainWin; std::shared_ptr guiSettings; + std::shared_ptr emuSettings; QWindow* gameWindow = nullptr; //! (Currently) only needed so that pad handlers have a valid target for event filtering. }; diff --git a/rpcs3/rpcs3qt/emu_settings.cpp b/rpcs3/rpcs3qt/emu_settings.cpp index 67c2f197f2..db5f374416 100644 --- a/rpcs3/rpcs3qt/emu_settings.cpp +++ b/rpcs3/rpcs3qt/emu_settings.cpp @@ -111,7 +111,7 @@ static QStringList getOptions(cfg_location location) return values; } -Render_Creator::Render_Creator() +emu_settings::Render_Creator::Render_Creator() { // check for dx12 adapters #ifdef _MSC_VER @@ -165,9 +165,25 @@ Render_Creator::Render_Creator() } } #endif + + // Graphics Adapter + D3D12 = Render_Info(name_D3D12, D3D12Adapters, supportsD3D12, emu_settings::D3D12Adapter); + Vulkan = Render_Info(name_Vulkan, vulkanAdapters, supportsVulkan, emu_settings::VulkanAdapter); + OpenGL = Render_Info(name_OpenGL); + NullRender = Render_Info(name_Null); + + renderers = { &D3D12, &Vulkan, &OpenGL, &NullRender }; } -emu_settings::emu_settings(const std::string& path) : QObject() +emu_settings::emu_settings() : QObject() +{ +} + +emu_settings::~emu_settings() +{ +} + +void emu_settings::LoadSettings(const std::string& path) { m_path = path; @@ -189,10 +205,6 @@ emu_settings::emu_settings(const std::string& path) : QObject() } } -emu_settings::~emu_settings() -{ -} - void emu_settings::SaveSettings() { YAML::Emitter out; diff --git a/rpcs3/rpcs3qt/emu_settings.h b/rpcs3/rpcs3qt/emu_settings.h index 1e8326ff3a..579fc4947e 100644 --- a/rpcs3/rpcs3qt/emu_settings.h +++ b/rpcs3/rpcs3qt/emu_settings.h @@ -13,20 +13,6 @@ constexpr auto qstr = QString::fromStdString; -struct Render_Creator -{ - bool supportsD3D12 = false; - bool supportsVulkan = false; - QStringList D3D12Adapters; - QStringList vulkanAdapters; - QString render_Null = QObject::tr("Null"); - QString render_Vulkan = QObject::tr("Vulkan"); - QString render_D3D12 = QObject::tr("D3D12[DO NOT USE]"); - QString render_OpenGL = QObject::tr("OpenGL"); - - Render_Creator(); -}; - // Node location using cfg_location = std::vector; @@ -108,10 +94,44 @@ public: dev_usb000Location, }; + struct Render_Info + { + QString name; + QString old_adapter; + QStringList adapters; + SettingsType type; + bool supported = true; + bool has_adapters = true; + + Render_Info() {}; + Render_Info(const QString& name) : name(name), has_adapters(false) {}; + Render_Info(const QString& name, const QStringList& adapters, bool supported, SettingsType type) + : name(name), adapters(adapters), supported(supported), type(type) {}; + }; + + struct Render_Creator + { + bool supportsD3D12 = false; + bool supportsVulkan = false; + QStringList D3D12Adapters; + QStringList vulkanAdapters; + QString name_Null = tr("Null"); + QString name_Vulkan = tr("Vulkan"); + QString name_D3D12 = tr("D3D12[DO NOT USE]"); + QString name_OpenGL = tr("OpenGL"); + Render_Info D3D12; + Render_Info Vulkan; + Render_Info OpenGL; + Render_Info NullRender; + std::vector renderers; + + Render_Creator(); + }; + /** Creates a settings object which reads in the config.yml file at rpcs3/bin/%path%/config.yml * Settings are only written when SaveSettings is called. */ - emu_settings(const std::string& path); + emu_settings(); ~emu_settings(); /** Connects a combo box with the target settings type*/ @@ -131,8 +151,15 @@ public: /** Sets the setting type to a given value.*/ void SetSetting(SettingsType type, const std::string& val); + + /** Gets all the renderer info for gpu settings.*/ + Render_Creator m_render_creator; + + /** Loads the settings from path.*/ + void LoadSettings(const std::string& path = ""); + public Q_SLOTS: -/** Writes the unsaved settings to file. Used in settings dialog on accept.*/ + /** Writes the unsaved settings to file. Used in settings dialog on accept.*/ void SaveSettings(); private: /** A helper map that keeps track of where a given setting type is located*/ diff --git a/rpcs3/rpcs3qt/game_list_frame.cpp b/rpcs3/rpcs3qt/game_list_frame.cpp index f3425b9f16..95e4c1d42a 100644 --- a/rpcs3/rpcs3qt/game_list_frame.cpp +++ b/rpcs3/rpcs3qt/game_list_frame.cpp @@ -30,8 +30,8 @@ static const std::string m_class_name = "GameViewer"; inline std::string sstr(const QString& _in) { return _in.toUtf8().toStdString(); } inline QSize sizeFromSlider(const int& pos) { return GUI::gl_icon_size_min + (GUI::gl_icon_size_max - GUI::gl_icon_size_min) * (pos / (float)GUI::gl_max_slider_pos); } -game_list_frame::game_list_frame(std::shared_ptr settings, const Render_Creator& r_Creator, QWidget *parent) - : QDockWidget(tr("Game List"), parent), xgui_settings(settings), m_Render_Creator(r_Creator) +game_list_frame::game_list_frame(std::shared_ptr guiSettings, std::shared_ptr emuSettings, QWidget *parent) + : QDockWidget(tr("Game List"), parent), xgui_settings(guiSettings), xemu_settings(emuSettings) { setAcceptDrops(true); @@ -663,7 +663,7 @@ void game_list_frame::ShowSpecifiedContextMenu(const QPoint &pos, int row) }); connect(configure, &QAction::triggered, [=] { - settings_dialog dlg(xgui_settings, m_Render_Creator, 0, this, &currGame); + settings_dialog dlg(xgui_settings, xemu_settings, 0, this, &currGame); connect(&dlg, &QDialog::accepted, [this] { Refresh(true, false); diff --git a/rpcs3/rpcs3qt/game_list_frame.h b/rpcs3/rpcs3qt/game_list_frame.h index 7ac394311d..d8513bd23d 100644 --- a/rpcs3/rpcs3qt/game_list_frame.h +++ b/rpcs3/rpcs3qt/game_list_frame.h @@ -193,7 +193,7 @@ class game_list_frame : public QDockWidget Q_OBJECT public: - explicit game_list_frame(std::shared_ptr settings, const Render_Creator& r_Creator, QWidget *parent = nullptr); + explicit game_list_frame(std::shared_ptr guiSettings, std::shared_ptr emuSettings, QWidget *parent = nullptr); ~game_list_frame(); /** Refresh the gamelist with/without loading game data from files. Public so that main frame can refresh after vfs or install */ @@ -298,6 +298,7 @@ private: // TODO: Reorganize this into a sensible order for private variables. std::shared_ptr xgui_settings; + std::shared_ptr xemu_settings; int m_sortColumn; Qt::SortOrder m_colSortOrder; @@ -312,7 +313,6 @@ private: qreal m_Text_Factor; QStringList m_categoryFilters; QString m_searchText; - Render_Creator m_Render_Creator; uint m_games_per_row = 0; }; diff --git a/rpcs3/rpcs3qt/main_window.cpp b/rpcs3/rpcs3qt/main_window.cpp index 34d2331a6b..73e1049bc0 100644 --- a/rpcs3/rpcs3qt/main_window.cpp +++ b/rpcs3/rpcs3qt/main_window.cpp @@ -47,7 +47,8 @@ inline std::string sstr(const QString& _in) { return _in.toUtf8().toStdString(); } -main_window::main_window(std::shared_ptr guiSettings, QWidget *parent) : QMainWindow(parent), guiSettings(guiSettings), m_sys_menu_opened(false), ui(new Ui::main_window) +main_window::main_window(std::shared_ptr guiSettings, std::shared_ptr emuSettings, QWidget *parent) + : QMainWindow(parent), guiSettings(guiSettings), emuSettings(emuSettings), m_sys_menu_opened(false), ui(new Ui::main_window) { } @@ -1207,7 +1208,7 @@ void main_window::CreateConnects() auto openSettings = [=](int tabIndex) { - settings_dialog dlg(guiSettings, m_Render_Creator, tabIndex, this); + settings_dialog dlg(guiSettings, emuSettings, tabIndex, this); connect(&dlg, &settings_dialog::GuiSettingsSaveRequest, this, &main_window::SaveWindowState); connect(&dlg, &settings_dialog::GuiSettingsSyncRequest, [=]() {ConfigureGuiFromSettings(true); }); connect(&dlg, &settings_dialog::GuiStylesheetRequest, this, &main_window::RequestGlobalStylesheetChange); @@ -1235,7 +1236,7 @@ void main_window::CreateConnects() connect(ui->confVFSDialogAct, &QAction::triggered, [=] { - vfs_dialog dlg(this); + vfs_dialog dlg(guiSettings, emuSettings, this); dlg.exec(); m_gameListFrame->Refresh(true); // dev-hdd0 may have changed. Refresh just in case. }); @@ -1445,7 +1446,7 @@ void main_window::CreateDockWindows() // new mainwindow widget because existing seems to be bugged for now m_mw = new QMainWindow(); - m_gameListFrame = new game_list_frame(guiSettings, m_Render_Creator, m_mw); + m_gameListFrame = new game_list_frame(guiSettings, emuSettings, m_mw); m_gameListFrame->setObjectName("gamelist"); m_debuggerFrame = new debugger_frame(guiSettings, m_mw); m_debuggerFrame->setObjectName("debugger"); diff --git a/rpcs3/rpcs3qt/main_window.h b/rpcs3/rpcs3qt/main_window.h index b997c9976e..a831b7abbf 100644 --- a/rpcs3/rpcs3qt/main_window.h +++ b/rpcs3/rpcs3qt/main_window.h @@ -32,8 +32,6 @@ class main_window : public QMainWindow bool m_sys_menu_opened; bool m_save_slider_pos = false; - Render_Creator m_Render_Creator; - QIcon m_appIcon; QIcon m_icon_play; QIcon m_icon_pause; @@ -58,7 +56,7 @@ class main_window : public QMainWindow #endif public: - explicit main_window(std::shared_ptr guiSettings, QWidget *parent = 0); + explicit main_window(std::shared_ptr guiSettings, std::shared_ptr emuSettings, QWidget *parent = 0); void Init(); ~main_window(); void CreateThumbnailToolbar(); @@ -117,4 +115,5 @@ private: debugger_frame *m_debuggerFrame; game_list_frame *m_gameListFrame; std::shared_ptr guiSettings; + std::shared_ptr emuSettings; }; diff --git a/rpcs3/rpcs3qt/settings_dialog.cpp b/rpcs3/rpcs3qt/settings_dialog.cpp index 24650a467a..ceea6cd2bc 100644 --- a/rpcs3/rpcs3qt/settings_dialog.cpp +++ b/rpcs3/rpcs3qt/settings_dialog.cpp @@ -26,8 +26,8 @@ inline std::string sstr(const QString& _in) { return _in.toUtf8().toStdString(); } inline std::string sstr(const QVariant& _in) { return sstr(_in.toString()); } -settings_dialog::settings_dialog(std::shared_ptr xSettings, const Render_Creator& r_Creator, const int& tabIndex, QWidget *parent, const GameInfo* game) - : QDialog(parent), xgui_settings(xSettings), ui(new Ui::settings_dialog), m_tab_Index(tabIndex) +settings_dialog::settings_dialog(std::shared_ptr guiSettings, std::shared_ptr emuSettings, const int& tabIndex, QWidget *parent, const GameInfo* game) + : QDialog(parent), xgui_settings(guiSettings), xemu_settings(emuSettings), ui(new Ui::settings_dialog), m_tab_Index(tabIndex) { ui->setupUi(this); ui->cancelButton->setDefault(true); @@ -69,15 +69,14 @@ settings_dialog::settings_dialog(std::shared_ptr xSettings, const QJsonObject json_debug = json_obj.value("debug").toObject(); - std::shared_ptr xemu_settings; if (game) { - xemu_settings.reset(new emu_settings("data/" + game->serial)); + xemu_settings->LoadSettings("data/" + game->serial); setWindowTitle(tr("Settings: [") + qstr(game->serial) + "] " + qstr(game->name)); } else { - xemu_settings.reset(new emu_settings("")); + xemu_settings->LoadSettings(); setWindowTitle(tr("Settings")); } @@ -333,6 +332,8 @@ settings_dialog::settings_dialog(std::shared_ptr xSettings, const // | |__| | | | |__| | | | (_| | |_) | // \_____|_| \____/ |_|\__,_|_.__/ + emu_settings::Render_Creator render_creator = xemu_settings.get()->m_render_creator; + // Comboboxes ui->graphicsAdapterBox->setToolTip(json_gpu_cbo["graphicsAdapterBox"].toString()); @@ -343,7 +344,7 @@ settings_dialog::settings_dialog(std::shared_ptr xSettings, const { if (ui->renderBox->itemText(i) == "D3D12") { - ui->renderBox->setItemText(i, r_Creator.render_D3D12); + ui->renderBox->setItemText(i, render_creator.name_D3D12); break; } } @@ -376,16 +377,8 @@ settings_dialog::settings_dialog(std::shared_ptr xSettings, const xemu_settings->EnhanceCheckBox(ui->scrictModeRendering, emu_settings::StrictRenderingMode); ui->scrictModeRendering->setToolTip(json_gpu_main["scrictModeRendering"].toString()); - // Graphics Adapter - m_D3D12 = Render_Info(r_Creator.render_D3D12, r_Creator.D3D12Adapters, r_Creator.supportsD3D12, emu_settings::D3D12Adapter); - m_Vulkan = Render_Info(r_Creator.render_Vulkan, r_Creator.vulkanAdapters, r_Creator.supportsVulkan, emu_settings::VulkanAdapter); - m_OpenGL = Render_Info(r_Creator.render_OpenGL); - m_NullRender = Render_Info(r_Creator.render_Null); - - std::vector Render_List = { &m_D3D12, &m_Vulkan, &m_OpenGL, &m_NullRender }; - // Remove renderers from the renderer Combobox if not supported - for (auto renderer : Render_List) + for (const auto& renderer : render_creator.renderers) { if (renderer->supported) { @@ -412,10 +405,10 @@ settings_dialog::settings_dialog(std::shared_ptr xSettings, const { if (text.isEmpty()) return; - auto switchTo = [=](Render_Info renderer) + auto switchTo = [=](emu_settings::Render_Info renderer) { // Reset other adapters to old config - for (const auto& render : Render_List) + for (const auto& render : render_creator.renderers) { if (renderer.name != render->name && render->has_adapters && render->supported) { @@ -453,12 +446,12 @@ settings_dialog::settings_dialog(std::shared_ptr xSettings, const xemu_settings->SetSetting(renderer.type, sstr(ui->graphicsAdapterBox->currentText())); }; - for (auto render : Render_List) + for (const auto& renderer : render_creator.renderers) { - if (render->name == text) + if (renderer->name == text) { - switchTo(*render); - ui->graphicsAdapterBox->setEnabled(render->has_adapters); + switchTo(*renderer); + ui->graphicsAdapterBox->setEnabled(renderer->has_adapters); } } }; @@ -474,7 +467,7 @@ settings_dialog::settings_dialog(std::shared_ptr xSettings, const m_oldRender = newRender; return; } - for (const auto& render : Render_List) + for (const auto& render : render_creator.renderers) { if (render->name == newRender && render->has_adapters && render->adapters.contains(text)) { @@ -494,7 +487,7 @@ settings_dialog::settings_dialog(std::shared_ptr xSettings, const auto fixGLLegacy = [=](const QString& text) { - ui->glLegacyBuffers->setEnabled(text == m_OpenGL.name); + ui->glLegacyBuffers->setEnabled(text == render_creator.name_OpenGL); }; // Handle connects to disable specific checkboxes that depend on GUI state. diff --git a/rpcs3/rpcs3qt/settings_dialog.h b/rpcs3/rpcs3qt/settings_dialog.h index 6769ea11b4..45e9d4a953 100644 --- a/rpcs3/rpcs3qt/settings_dialog.h +++ b/rpcs3/rpcs3qt/settings_dialog.h @@ -15,27 +15,12 @@ namespace Ui class settings_dialog; } -struct Render_Info -{ - QString name; - QString old_adapter; - QStringList adapters; - emu_settings::SettingsType type; - bool supported = true; - bool has_adapters = true; - - Render_Info(){}; - Render_Info(const QString& name) : name(name), has_adapters(false){}; - Render_Info(const QString& name, const QStringList& adapters, bool supported, const emu_settings::SettingsType& type) - : name(name), adapters(adapters), supported(supported), type(type) {}; -}; - class settings_dialog : public QDialog { Q_OBJECT public: - explicit settings_dialog(std::shared_ptr xSettings, const Render_Creator& r_Creator, const int& tabIndex = 0, QWidget *parent = 0, const GameInfo *game = nullptr); + explicit settings_dialog(std::shared_ptr guiSettings, std::shared_ptr emuSettings, const int& tabIndex = 0, QWidget *parent = 0, const GameInfo *game = nullptr); ~settings_dialog(); int exec(); Q_SIGNALS: @@ -56,12 +41,8 @@ private: //gpu tab QString m_oldRender = ""; - Render_Info m_D3D12; - Render_Info m_Vulkan; - Render_Info m_OpenGL; - Render_Info m_NullRender; - int m_tab_Index; Ui::settings_dialog *ui; std::shared_ptr xgui_settings; + std::shared_ptr xemu_settings; }; diff --git a/rpcs3/rpcs3qt/vfs_dialog.cpp b/rpcs3/rpcs3qt/vfs_dialog.cpp index 4edb61bf1f..75c60ee194 100644 --- a/rpcs3/rpcs3qt/vfs_dialog.cpp +++ b/rpcs3/rpcs3qt/vfs_dialog.cpp @@ -9,27 +9,29 @@ inline std::string sstr(const QString& _in) { return _in.toUtf8().toStdString(); } -vfs_dialog::vfs_dialog(QWidget* parent) : QDialog(parent), - m_gui_settings(), m_emu_settings("") +vfs_dialog::vfs_dialog(std::shared_ptr guiSettings, std::shared_ptr emuSettings, QWidget* parent) + : QDialog(parent), m_gui_settings(guiSettings), m_emu_settings(emuSettings) { QTabWidget* tabs = new QTabWidget(); tabs->setUsesScrollButtons(false); + m_emu_settings->LoadSettings(); + // Create tabs vfs_dialog_tab* emulator_tab = new vfs_dialog_tab({ "$(EmulatorDir)", emu_settings::emulatorLocation, GUI::fs_emulator_dir_list, &g_cfg.vfs.emulator_dir }, - &m_gui_settings, &m_emu_settings, this); + m_gui_settings, m_emu_settings, this); vfs_dialog_tab* dev_hdd0_tab = new vfs_dialog_tab({ "dev_hdd0", emu_settings::dev_hdd0Location, GUI::fs_dev_hdd0_list, &g_cfg.vfs.dev_hdd0 }, - &m_gui_settings, &m_emu_settings, this); + m_gui_settings, m_emu_settings, this); vfs_dialog_tab* dev_hdd1_tab = new vfs_dialog_tab({ "dev_hdd1", emu_settings::dev_hdd1Location, GUI::fs_dev_hdd1_list, &g_cfg.vfs.dev_hdd1 }, - &m_gui_settings, &m_emu_settings, this); + m_gui_settings, m_emu_settings, this); vfs_dialog_tab* dev_flash_tab = new vfs_dialog_tab({ "dev_flash", emu_settings::dev_flashLocation, GUI::fs_dev_flash_list, &g_cfg.vfs.dev_flash }, - &m_gui_settings, &m_emu_settings, this); + m_gui_settings, m_emu_settings, this); vfs_dialog_tab* dev_usb000_tab = new vfs_dialog_tab({ "dev_usb000", emu_settings::dev_usb000Location, GUI::fs_dev_usb000_list, &g_cfg.vfs.dev_usb000 }, - &m_gui_settings, &m_emu_settings, this); + m_gui_settings, m_emu_settings, this); tabs->addTab(emulator_tab, "$(EmulatorDir)"); tabs->addTab(dev_hdd0_tab, "dev_hdd0"); diff --git a/rpcs3/rpcs3qt/vfs_dialog.h b/rpcs3/rpcs3qt/vfs_dialog.h index 92077a7fd8..0207dcb382 100644 --- a/rpcs3/rpcs3qt/vfs_dialog.h +++ b/rpcs3/rpcs3qt/vfs_dialog.h @@ -11,8 +11,8 @@ class vfs_dialog : public QDialog Q_OBJECT public: - explicit vfs_dialog(QWidget* parent = nullptr); + explicit vfs_dialog(std::shared_ptr guiSettings, std::shared_ptr emuSettings, QWidget* parent = nullptr); private: - gui_settings m_gui_settings; - emu_settings m_emu_settings; + std::shared_ptr m_gui_settings; + std::shared_ptr m_emu_settings; }; diff --git a/rpcs3/rpcs3qt/vfs_dialog_tab.cpp b/rpcs3/rpcs3qt/vfs_dialog_tab.cpp index f05b8137c7..4752d82ad7 100644 --- a/rpcs3/rpcs3qt/vfs_dialog_tab.cpp +++ b/rpcs3/rpcs3qt/vfs_dialog_tab.cpp @@ -7,8 +7,8 @@ inline std::string sstr(const QString& _in) { return _in.toUtf8().toStdString(); } -vfs_dialog_tab::vfs_dialog_tab(const vfs_settings_info& settingsInfo, gui_settings* guiSettings, emu_settings* emuSettings, QWidget* parent) : QWidget(parent), -m_info(settingsInfo), m_gui_settings(guiSettings), m_emu_settings(emuSettings) +vfs_dialog_tab::vfs_dialog_tab(const vfs_settings_info& settingsInfo, std::shared_ptr guiSettings, std::shared_ptr emuSettings, QWidget* parent) + : QWidget(parent), m_info(settingsInfo), m_gui_settings(guiSettings), m_emu_settings(emuSettings) { m_dirList = new QListWidget(this); @@ -19,7 +19,7 @@ m_info(settingsInfo), m_gui_settings(guiSettings), m_emu_settings(emuSettings) { new QListWidgetItem(EmuConfigDir(), m_dirList); } - for (QString dir : alldirs) + for (const QString& dir : alldirs) { new QListWidgetItem(dir, m_dirList); } diff --git a/rpcs3/rpcs3qt/vfs_dialog_tab.h b/rpcs3/rpcs3qt/vfs_dialog_tab.h index 59d3fd4744..4c417bffd3 100644 --- a/rpcs3/rpcs3qt/vfs_dialog_tab.h +++ b/rpcs3/rpcs3qt/vfs_dialog_tab.h @@ -23,7 +23,7 @@ class vfs_dialog_tab : public QWidget Q_OBJECT public: - explicit vfs_dialog_tab(const vfs_settings_info& info, gui_settings* guiSettings, emu_settings* emuSettings, QWidget* parent = nullptr); + explicit vfs_dialog_tab(const vfs_settings_info& info, std::shared_ptr guiSettings, std::shared_ptr emuSettings, QWidget* parent = nullptr); void SaveSettings(); void AddNewDirectory(); @@ -34,8 +34,8 @@ private: const QString EmptyPath = "Empty Path"; vfs_settings_info m_info; - gui_settings* m_gui_settings; - emu_settings* m_emu_settings; + std::shared_ptr m_gui_settings; + std::shared_ptr m_emu_settings; // UI variables needed in higher scope QListWidget* m_dirList;