From 0e348ee159bca57376188d7323ef069886ca1197 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joshua=20Vanda=C3=ABle?= Date: Thu, 15 Jan 2026 20:29:31 +0100 Subject: [PATCH] MenuBar: Add entries to open the config and cache folders --- Source/Core/DolphinQt/MainWindow.cpp | 18 ++++++++++++++++++ Source/Core/DolphinQt/MainWindow.h | 2 ++ Source/Core/DolphinQt/MenuBar.cpp | 12 ++++++++++++ Source/Core/DolphinQt/MenuBar.h | 4 ++++ 4 files changed, 36 insertions(+) diff --git a/Source/Core/DolphinQt/MainWindow.cpp b/Source/Core/DolphinQt/MainWindow.cpp index 73049054427..4b9308f189b 100644 --- a/Source/Core/DolphinQt/MainWindow.cpp +++ b/Source/Core/DolphinQt/MainWindow.cpp @@ -530,6 +530,8 @@ void MainWindow::ConnectMenuBar() connect(m_menu_bar, &MenuBar::EjectDisc, this, &MainWindow::EjectDisc); connect(m_menu_bar, &MenuBar::ChangeDisc, this, &MainWindow::ChangeDisc); connect(m_menu_bar, &MenuBar::OpenUserFolder, this, &MainWindow::OpenUserFolder); + connect(m_menu_bar, &MenuBar::OpenConfigFolder, this, &MainWindow::OpenConfigFolder); + connect(m_menu_bar, &MenuBar::OpenCacheFolder, this, &MainWindow::OpenCacheFolder); // Emulation connect(m_menu_bar, &MenuBar::Pause, this, &MainWindow::Pause); @@ -827,6 +829,22 @@ void MainWindow::OpenUserFolder() QDesktopServices::openUrl(url); } +void MainWindow::OpenConfigFolder() +{ + std::string path = File::GetUserPath(D_CONFIG_IDX); + + QUrl url = QUrl::fromLocalFile(QString::fromStdString(path)); + QDesktopServices::openUrl(url); +} + +void MainWindow::OpenCacheFolder() +{ + std::string path = File::GetUserPath(D_CACHE_IDX); + + QUrl url = QUrl::fromLocalFile(QString::fromStdString(path)); + QDesktopServices::openUrl(url); +} + void MainWindow::Open() { QStringList files = PromptFileNames(); diff --git a/Source/Core/DolphinQt/MainWindow.h b/Source/Core/DolphinQt/MainWindow.h index a089935f612..bb7307c98c8 100644 --- a/Source/Core/DolphinQt/MainWindow.h +++ b/Source/Core/DolphinQt/MainWindow.h @@ -216,6 +216,8 @@ private: void EjectDisc(); void OpenUserFolder(); + void OpenConfigFolder(); + void OpenCacheFolder(); QStringList PromptFileNames(); diff --git a/Source/Core/DolphinQt/MenuBar.cpp b/Source/Core/DolphinQt/MenuBar.cpp index dfb3eb9ff06..7126ff96547 100644 --- a/Source/Core/DolphinQt/MenuBar.cpp +++ b/Source/Core/DolphinQt/MenuBar.cpp @@ -260,6 +260,18 @@ void MenuBar::AddFileMenu() m_open_user_folder = file_menu->addAction(tr("Open &User Folder"), this, &MenuBar::OpenUserFolder); + const std::string user_path = File::GetUserPath(D_USER_IDX); + if (user_path + CONFIG_DIR DIR_SEP != File::GetUserPath(D_CONFIG_IDX)) + { + m_open_config_folder = + file_menu->addAction(tr("Open &Config Folder"), this, &MenuBar::OpenConfigFolder); + } + if (user_path + CACHE_DIR DIR_SEP != File::GetUserPath(D_CACHE_IDX)) + { + m_open_cache_folder = + file_menu->addAction(tr("Open C&ache Folder"), this, &MenuBar::OpenCacheFolder); + } + file_menu->addSeparator(); m_exit_action = file_menu->addAction(tr("E&xit"), this, &MenuBar::Exit); diff --git a/Source/Core/DolphinQt/MenuBar.h b/Source/Core/DolphinQt/MenuBar.h index 1f2abd3a3b8..9f51179e2ae 100644 --- a/Source/Core/DolphinQt/MenuBar.h +++ b/Source/Core/DolphinQt/MenuBar.h @@ -62,6 +62,8 @@ signals: void ChangeDisc(); void EjectDisc(); void OpenUserFolder(); + void OpenConfigFolder(); + void OpenCacheFolder(); // Emulation void Play(); @@ -211,6 +213,8 @@ private: QAction* m_eject_disc; QMenu* m_backup_menu; QAction* m_open_user_folder; + QAction* m_open_config_folder; + QAction* m_open_cache_folder; // Tools QAction* m_wad_install_action;