diff --git a/rpcs3/rpcs3qt/gui_settings.cpp b/rpcs3/rpcs3qt/gui_settings.cpp index 4ee48c17dd..2b3da8d6f0 100644 --- a/rpcs3/rpcs3qt/gui_settings.cpp +++ b/rpcs3/rpcs3qt/gui_settings.cpp @@ -4,6 +4,8 @@ #include "localized.h" #include "Emu/System.h" +#include "Utilities/File.h" +#include "Utilities/StrUtil.h" #include #include @@ -376,7 +378,17 @@ QString gui_settings::GetCurrentStylesheetPath() QString path = dir.absoluteFilePath(stylesheet + ".qss"); QFile test(path); if (test.exists()) - return path; + { + test.open(QIODevice::ReadOnly); + std::string result = fs::get_cache_dir() + "temp.qss"; + std::string sheet = test.readAll().toStdString(); + + // Fixup paths (replace resources in GuiConfigs with absolute paths) and store in temp file. + path.truncate(path.size() - stylesheet.size() - 4); + fs::write_file(result, fs::rewrite, fmt::replace_all(sheet, "url(\"GuiConfigs/", "url(\"" + path.toStdString())); + + return QString::fromUtf8(result.data(), result.size()); + } } return "";