From d5b6425b789f1b8686d50ff417414a7993a72ca3 Mon Sep 17 00:00:00 2001 From: hidinginside Date: Sat, 6 May 2023 01:33:41 -0400 Subject: [PATCH] settings: Add option to change shader directory --- src/common/settings.cpp | 1 + src/yuzu/configuration/config.cpp | 10 +++ .../configuration/configure_filesystem.cpp | 9 ++ src/yuzu/configuration/configure_filesystem.h | 1 + .../configuration/configure_filesystem.ui | 85 +++++++++++-------- 5 files changed, 72 insertions(+), 34 deletions(-) diff --git a/src/common/settings.cpp b/src/common/settings.cpp index 174460c5ed..4716781574 100644 --- a/src/common/settings.cpp +++ b/src/common/settings.cpp @@ -74,6 +74,7 @@ void LogSettings() { log_path("DataStorage_LoadDir", Common::FS::GetYuzuPath(Common::FS::YuzuPath::LoadDir)); log_path("DataStorage_NANDDir", Common::FS::GetYuzuPath(Common::FS::YuzuPath::NANDDir)); log_path("DataStorage_SDMCDir", Common::FS::GetYuzuPath(Common::FS::YuzuPath::SDMCDir)); + log_path("DataStorage_ShaderDir", Common::FS::GetYuzuPath(Common::FS::YuzuPath::ShaderDir)); log_setting("Debugging_ProgramArgs", values.program_args.GetValue()); log_setting("Debugging_GDBStub", values.use_gdbstub.GetValue()); log_setting("Input_EnableMotion", values.motion_enabled.GetValue()); diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp index 0131f63e72..8cce9c931d 100644 --- a/src/yuzu/configuration/config.cpp +++ b/src/yuzu/configuration/config.cpp @@ -520,6 +520,13 @@ void Config::ReadDataStorageValues() { QString::fromStdString(FS::GetYuzuPathString(FS::YuzuPath::SDMCDir))) .toString() .toStdString()); + FS::SetYuzuPath( + FS::YuzuPath::ShaderDir, + qt_config + ->value(QStringLiteral("shader_directory"), + QString::fromStdString(FS::GetYuzuPathString(FS::YuzuPath::ShaderDir))) + .toString() + .toStdString()); FS::SetYuzuPath( FS::YuzuPath::LoadDir, qt_config @@ -1176,6 +1183,9 @@ void Config::SaveDataStorageValues() { WriteSetting(QStringLiteral("sdmc_directory"), QString::fromStdString(FS::GetYuzuPathString(FS::YuzuPath::SDMCDir)), QString::fromStdString(FS::GetYuzuPathString(FS::YuzuPath::SDMCDir))); + WriteSetting(QStringLiteral("shader_directory"), + QString::fromStdString(FS::GetYuzuPathString(FS::YuzuPath::ShaderDir)), + QString::fromStdString(FS::GetYuzuPathString(FS::YuzuPath::ShaderDir))); WriteSetting(QStringLiteral("load_directory"), QString::fromStdString(FS::GetYuzuPathString(FS::YuzuPath::LoadDir)), QString::fromStdString(FS::GetYuzuPathString(FS::YuzuPath::LoadDir))); diff --git a/src/yuzu/configuration/configure_filesystem.cpp b/src/yuzu/configuration/configure_filesystem.cpp index ad19517546..5c105f91e5 100644 --- a/src/yuzu/configuration/configure_filesystem.cpp +++ b/src/yuzu/configuration/configure_filesystem.cpp @@ -19,6 +19,8 @@ ConfigureFilesystem::ConfigureFilesystem(QWidget* parent) [this] { SetDirectory(DirectoryTarget::NAND, ui->nand_directory_edit); }); connect(ui->sdmc_directory_button, &QToolButton::pressed, this, [this] { SetDirectory(DirectoryTarget::SD, ui->sdmc_directory_edit); }); + connect(ui->shader_directory_button, &QToolButton::pressed, this, + [this] { SetDirectory(DirectoryTarget::Shader, ui->shader_directory_edit); }); connect(ui->gamecard_path_button, &QToolButton::pressed, this, [this] { SetDirectory(DirectoryTarget::Gamecard, ui->gamecard_path_edit); }); connect(ui->dump_path_button, &QToolButton::pressed, this, @@ -50,6 +52,8 @@ void ConfigureFilesystem::SetConfiguration() { QString::fromStdString(Common::FS::GetYuzuPathString(Common::FS::YuzuPath::NANDDir))); ui->sdmc_directory_edit->setText( QString::fromStdString(Common::FS::GetYuzuPathString(Common::FS::YuzuPath::SDMCDir))); + ui->shader_directory_edit->setText( + QString::fromStdString(Common::FS::GetYuzuPathString(Common::FS::YuzuPath::ShaderDir))); ui->gamecard_path_edit->setText( QString::fromStdString(Settings::values.gamecard_path.GetValue())); ui->dump_path_edit->setText( @@ -72,6 +76,8 @@ void ConfigureFilesystem::ApplyConfiguration() { ui->nand_directory_edit->text().toStdString()); Common::FS::SetYuzuPath(Common::FS::YuzuPath::SDMCDir, ui->sdmc_directory_edit->text().toStdString()); + Common::FS::SetYuzuPath(Common::FS::YuzuPath::ShaderDir, + ui->shader_directory_edit->text().toStdString()); Common::FS::SetYuzuPath(Common::FS::YuzuPath::DumpDir, ui->dump_path_edit->text().toStdString()); Common::FS::SetYuzuPath(Common::FS::YuzuPath::LoadDir, @@ -95,6 +101,9 @@ void ConfigureFilesystem::SetDirectory(DirectoryTarget target, QLineEdit* edit) case DirectoryTarget::SD: caption = tr("Select Emulated SD Directory..."); break; + case DirectoryTarget::Shader: + caption = tr("Select Shader Directory..."); + break; case DirectoryTarget::Gamecard: caption = tr("Select Gamecard Path..."); break; diff --git a/src/yuzu/configuration/configure_filesystem.h b/src/yuzu/configuration/configure_filesystem.h index 31d2f1d56d..c976498d95 100644 --- a/src/yuzu/configuration/configure_filesystem.h +++ b/src/yuzu/configuration/configure_filesystem.h @@ -30,6 +30,7 @@ private: enum class DirectoryTarget { NAND, SD, + Shader, Gamecard, Dump, Load, diff --git a/src/yuzu/configuration/configure_filesystem.ui b/src/yuzu/configuration/configure_filesystem.ui index 2f6030b5c4..e8f388dfdf 100644 --- a/src/yuzu/configuration/configure_filesystem.ui +++ b/src/yuzu/configuration/configure_filesystem.ui @@ -25,40 +25,6 @@ Storage Directories - - - - NAND - - - - - - - ... - - - - - - - - - - - - - SD Card - - - - - - - ... - - - @@ -75,6 +41,57 @@ + + + + NAND + + + + + + + SD Card + + + + + + + + + + ... + + + + + + + ... + + + + + + + + + + Shaders + + + + + + + + + + ... + + +