diff --git a/rpcs3/rpcs3qt/vfs_dialog.cpp b/rpcs3/rpcs3qt/vfs_dialog.cpp index e729d73181..1afeb34dbd 100644 --- a/rpcs3/rpcs3qt/vfs_dialog.cpp +++ b/rpcs3/rpcs3qt/vfs_dialog.cpp @@ -1,10 +1,5 @@ #include "vfs_dialog.h" -#include "Emu/System.h" - -#include "vfs_dialog_tab.h" - -#include #include inline std::string sstr(const QString& _in) { return _in.toStdString(); } @@ -69,8 +64,9 @@ vfs_dialog::vfs_dialog(std::shared_ptr guiSettings, std::shared_pt { for (int i = 0; i < tabs->count(); ++i) { - static_cast(tabs->widget(i))->SaveSettings(); + static_cast(tabs->widget(i))->SetSettings(); } + m_emu_settings->SaveSettings(); accept(); }); @@ -86,6 +82,6 @@ vfs_dialog::vfs_dialog(std::shared_ptr guiSettings, std::shared_pt vbox->addLayout(buttons); setLayout(vbox); - setWindowTitle("Virtual File System"); + setWindowTitle(tr("Virtual File System")); setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); } diff --git a/rpcs3/rpcs3qt/vfs_dialog.h b/rpcs3/rpcs3qt/vfs_dialog.h index 0207dcb382..544b10a8be 100644 --- a/rpcs3/rpcs3qt/vfs_dialog.h +++ b/rpcs3/rpcs3qt/vfs_dialog.h @@ -1,7 +1,6 @@ #pragma once -#include "gui_settings.h" -#include "emu_settings.h" +#include "vfs_dialog_tab.h" #include #include diff --git a/rpcs3/rpcs3qt/vfs_dialog_tab.cpp b/rpcs3/rpcs3qt/vfs_dialog_tab.cpp index 16af392287..f3be998b7c 100644 --- a/rpcs3/rpcs3qt/vfs_dialog_tab.cpp +++ b/rpcs3/rpcs3qt/vfs_dialog_tab.cpp @@ -2,8 +2,6 @@ #include #include -#include -#include inline std::string sstr(const QString& _in) { return _in.toStdString(); } @@ -13,27 +11,29 @@ vfs_dialog_tab::vfs_dialog_tab(const vfs_settings_info& settingsInfo, std::share m_dirList = new QListWidget(this); QStringList alldirs = m_gui_settings->GetValue(m_info.listLocation).toStringList(); + const QString current_dir = qstr(m_info.cfg_node->to_string()); + + QListWidgetItem* selected_item = nullptr; - // We must show the currently selected config. - if (alldirs.contains(EmuConfigDir()) == false) - { - new QListWidgetItem(EmuConfigDir(), m_dirList); - } for (const QString& dir : alldirs) { - new QListWidgetItem(dir, m_dirList); + QListWidgetItem* item = new QListWidgetItem(dir, m_dirList); + if (dir == current_dir) + selected_item = item; } + // We must show the currently selected config. + if (!selected_item) + selected_item = new QListWidgetItem(current_dir, m_dirList); + + selected_item->setSelected(true); + m_dirList->setMinimumWidth(m_dirList->sizeHintForColumn(0)); QHBoxLayout* selectedConfigLayout = new QHBoxLayout; QLabel* selectedMessage = new QLabel(m_info.name + " directory:"); m_selectedConfigLabel = new QLabel(); - m_selectedConfigLabel->setText(EmuConfigDir()); - if (m_selectedConfigLabel->text() == "") - { - m_selectedConfigLabel->setText(EmptyPath); - } + m_selectedConfigLabel->setText(current_dir.isEmpty() ? EmptyPath : current_dir); selectedConfigLayout->addWidget(selectedMessage); selectedConfigLayout->addWidget(m_selectedConfigLabel); selectedConfigLayout->addStretch(); @@ -44,52 +44,34 @@ vfs_dialog_tab::vfs_dialog_tab(const vfs_settings_info& settingsInfo, std::share setLayout(vbox); - connect(m_dirList, &QListWidget::itemDoubleClicked, [this](QListWidgetItem* item) + connect(m_dirList, &QListWidget::currentItemChanged, [this](QListWidgetItem* current, QListWidgetItem*) { - if (item->text() == "") - { - m_selectedConfigLabel->setText(EmptyPath); - } - else - { - m_selectedConfigLabel->setText(item->text()); - } + m_selectedConfigLabel->setText(current->text().isEmpty() ? EmptyPath : current->text()); }); } -void vfs_dialog_tab::SaveSettings() +void vfs_dialog_tab::SetSettings() { QStringList allDirs; for (int i = 0; i < m_dirList->count(); ++i) { allDirs += m_dirList->item(i)->text(); } - m_gui_settings->SetValue(m_info.listLocation, allDirs); - if (m_selectedConfigLabel->text() == EmptyPath) - { - m_info.cfg_node->from_string(""); - m_emu_settings->SetSetting(m_info.settingLoc, ""); - } - else - { - m_info.cfg_node->from_string(sstr(m_selectedConfigLabel->text())); - m_emu_settings->SetSetting(m_info.settingLoc, sstr(m_selectedConfigLabel->text())); - } - m_emu_settings->SaveSettings(); + + const std::string new_dir = m_selectedConfigLabel->text() == EmptyPath ? "" : sstr(m_selectedConfigLabel->text()); + m_info.cfg_node->from_string(new_dir); + m_emu_settings->SetSetting(m_info.settingLoc, new_dir); } void vfs_dialog_tab::Reset() { + const QString current_dir = qstr(m_info.cfg_node->to_string()); m_dirList->clear(); m_info.cfg_node->from_default(); - m_selectedConfigLabel->setText(EmuConfigDir()); - if (m_selectedConfigLabel->text() == "") - { - m_selectedConfigLabel->setText(EmptyPath); - } - m_dirList->addItem(new QListWidgetItem(EmuConfigDir())); - m_gui_settings->SetValue(m_info.listLocation, QStringList(EmuConfigDir())); + m_selectedConfigLabel->setText(current_dir.isEmpty() ? EmptyPath : current_dir); + m_dirList->addItem(new QListWidgetItem(current_dir)); + m_gui_settings->SetValue(m_info.listLocation, QStringList(current_dir)); } void vfs_dialog_tab::AddNewDirectory() @@ -102,8 +84,3 @@ void vfs_dialog_tab::AddNewDirectory() m_selectedConfigLabel->setText(dir); } } - -QString vfs_dialog_tab::EmuConfigDir() -{ - return qstr(m_info.cfg_node->to_string()); -} diff --git a/rpcs3/rpcs3qt/vfs_dialog_tab.h b/rpcs3/rpcs3qt/vfs_dialog_tab.h index ea4e9e70cc..fba53ec892 100644 --- a/rpcs3/rpcs3qt/vfs_dialog_tab.h +++ b/rpcs3/rpcs3qt/vfs_dialog_tab.h @@ -6,7 +6,7 @@ #include "gui_settings.h" #include "emu_settings.h" -#include +#include #include #include @@ -25,13 +25,11 @@ class vfs_dialog_tab : public QWidget public: explicit vfs_dialog_tab(const vfs_settings_info& info, std::shared_ptr guiSettings, std::shared_ptr emuSettings, QWidget* parent = nullptr); - void SaveSettings(); + void SetSettings(); void AddNewDirectory(); void Reset(); private: - QString EmuConfigDir(); - - const QString EmptyPath = "Empty Path"; + const QString EmptyPath = tr("Empty Path"); vfs_settings_info m_info; std::shared_ptr m_gui_settings;