diff options
| author | crueter <crueter@eden-emu.dev> | 2025-10-15 05:05:03 +0200 |
|---|---|---|
| committer | crueter <crueter@eden-emu.dev> | 2025-10-15 05:05:03 +0200 |
| commit | fff8e2026f79c3f38a8dd46764fac842a94dc5ad (patch) | |
| tree | 9095102b25307b9250536340a53f9c5a0bfcd483 /src/qt_common/util/path.cpp | |
| parent | 5f9dba40a0fe71ccd7014ae37a2fbfd8f225396e (diff) | |
[qt_common] reorg + checkstate abstraction (#2735)
no diff. in functionality, just confirm builds on ubuntu 24.04/debian 12
Signed-off-by: crueter <crueter@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2735
Diffstat (limited to 'src/qt_common/util/path.cpp')
| -rw-r--r-- | src/qt_common/util/path.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/qt_common/util/path.cpp b/src/qt_common/util/path.cpp new file mode 100644 index 0000000000..93e8007eb9 --- /dev/null +++ b/src/qt_common/util/path.cpp @@ -0,0 +1,33 @@ +// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later + +#include "qt_common/util/path.h" +#include <QDesktopServices> +#include <QString> +#include <QUrl> +#include "common/fs/fs.h" +#include "common/fs/path_util.h" +#include "qt_common/abstract/qt_frontend_util.h" +#include <fmt/format.h> + +namespace QtCommon::Path { + +bool OpenShaderCache(u64 program_id, QObject *parent) +{ + const auto shader_cache_dir = Common::FS::GetEdenPath(Common::FS::EdenPath::ShaderDir); + const auto shader_cache_folder_path{shader_cache_dir / fmt::format("{:016x}", program_id)}; + if (!Common::FS::CreateDirs(shader_cache_folder_path)) { + QtCommon::Frontend::ShowMessage(QMessageBox::Warning, + tr("Error Opening Shader Cache"), + tr("Failed to create or open shader cache for this title, " + "ensure your app data directory has write permissions."), + QMessageBox::Ok, + parent); + } + + const auto shader_path_string{Common::FS::PathToUTF8String(shader_cache_folder_path)}; + const auto qt_shader_cache_path = QString::fromStdString(shader_path_string); + return QDesktopServices::openUrl(QUrl::fromLocalFile(qt_shader_cache_path)); +} + +} |
