summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorMomo Cao <momo.cao@protonmail.com>2023-01-12 21:47:18 -0500
committerMomo Cao <momo.cao@protonmail.com>2023-01-12 21:47:18 -0500
commit05ed25d4820eeacea409e22d6c348e5eacdedd0d (patch)
tree2dd51bcfb619b470cf64b1816424f72f4602e715 /Source
parentf4f94396e94dad9cd4d7d7fb6defa096966a4ab8 (diff)
DolphinQt: Add button to open graphics mod folder on settings
Diffstat (limited to 'Source')
-rw-r--r--Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp15
-rw-r--r--Source/Core/DolphinQt/Config/GraphicsModListWidget.h3
2 files changed, 17 insertions, 1 deletions
diff --git a/Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp b/Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp
index ac01158b2f..eaa8d4a05b 100644
--- a/Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp
+++ b/Source/Core/DolphinQt/Config/GraphicsModListWidget.cpp
@@ -4,15 +4,18 @@
#include "DolphinQt/Config/GraphicsModListWidget.h"
#include <QCheckBox>
+#include <QDesktopServices>
#include <QHBoxLayout>
#include <QLabel>
#include <QListWidget>
#include <QPushButton>
+#include <QUrl>
#include <QVBoxLayout>
#include <QWidget>
#include <set>
+#include "Common/FileUtil.h"
#include "Core/ConfigManager.h"
#include "Core/Core.h"
#include "DolphinQt/Config/GraphicsModWarningWidget.h"
@@ -59,9 +62,10 @@ void GraphicsModListWidget::CreateWidgets()
m_mod_list->setSelectionRectVisible(true);
m_mod_list->setDragDropMode(QAbstractItemView::InternalMove);
+ m_open_directory_button = new QPushButton(tr("Open Directory..."));
m_refresh = new QPushButton(tr("&Refresh List"));
QHBoxLayout* hlayout = new QHBoxLayout;
- hlayout->addStretch();
+ hlayout->addWidget(m_open_directory_button);
hlayout->addWidget(m_refresh);
left_v_layout->addWidget(m_mod_list);
@@ -99,6 +103,9 @@ void GraphicsModListWidget::ConnectWidgets()
connect(m_mod_list->model(), &QAbstractItemModel::rowsMoved, this,
&GraphicsModListWidget::SaveModList);
+ connect(m_open_directory_button, &QPushButton::clicked, this,
+ &GraphicsModListWidget::OpenGraphicsModDir);
+
connect(m_refresh, &QPushButton::clicked, this, &GraphicsModListWidget::RefreshModList);
connect(&Settings::Instance(), &Settings::EmulationStateChanged, this,
@@ -274,3 +281,9 @@ void GraphicsModListWidget::CalculateGameRunning(Core::State state)
m_loaded_game_is_running =
state == Core::State::Running ? m_game_id == SConfig::GetInstance().GetGameID() : false;
}
+
+void GraphicsModListWidget::OpenGraphicsModDir()
+{
+ QDesktopServices::openUrl(
+ QUrl::fromLocalFile(QString::fromStdString(File::GetUserPath(D_GRAPHICSMOD_IDX))));
+}
diff --git a/Source/Core/DolphinQt/Config/GraphicsModListWidget.h b/Source/Core/DolphinQt/Config/GraphicsModListWidget.h
index b2ea082f12..970a160980 100644
--- a/Source/Core/DolphinQt/Config/GraphicsModListWidget.h
+++ b/Source/Core/DolphinQt/Config/GraphicsModListWidget.h
@@ -58,6 +58,8 @@ private:
void ClearLayoutRecursively(QLayout* layout);
+ void OpenGraphicsModDir();
+
void CalculateGameRunning(Core::State state);
bool m_loaded_game_is_running = false;
bool m_needs_save = false;
@@ -67,6 +69,7 @@ private:
QLabel* m_selected_mod_name;
QVBoxLayout* m_mod_meta_layout;
+ QPushButton* m_open_directory_button;
QPushButton* m_refresh;
GraphicsModWarningWidget* m_warning;