diff --git a/Source/GUI/MainWindow.cpp b/Source/GUI/MainWindow.cpp index d9fdf25f..84d3e33e 100644 --- a/Source/GUI/MainWindow.cpp +++ b/Source/GUI/MainWindow.cpp @@ -1,7 +1,9 @@ #include "MainWindow.h" #include +#include #include +#include #include #include #include @@ -62,6 +64,7 @@ void MainWindow::makeMenus() m_actClearWatchList = new QAction(tr("&Clear the watch list"), this); m_actImportFromCT = new QAction(tr("&Import from Cheat Engine's CT file..."), this); m_actExportAsCSV = new QAction(tr("&Export as CSV..."), this); + QAction* const actOpenConfigDir{new QAction(tr("Open Configuration Directory..."), this)}; m_actOpenWatchList->setShortcut(Qt::Modifier::CTRL | Qt::Key::Key_O); m_actSaveWatchList->setShortcut(Qt::Modifier::CTRL | Qt::Key::Key_S); @@ -90,6 +93,12 @@ void MainWindow::makeMenus() connect(m_actClearWatchList, &QAction::triggered, this, &MainWindow::onClearWatchList); connect(m_actImportFromCT, &QAction::triggered, this, &MainWindow::onImportFromCT); connect(m_actExportAsCSV, &QAction::triggered, this, &MainWindow::onExportAsCSV); + connect(actOpenConfigDir, &QAction::triggered, this, []() { + const QString filepath{SConfig::getInstance().getSettingsFilepath()}; + const QFileInfo fileInfo{filepath}; + const QUrl url{QUrl::fromLocalFile(fileInfo.absolutePath())}; + QDesktopServices::openUrl(url); + }); connect(m_actSettings, &QAction::triggered, this, &MainWindow::onOpenSettings); @@ -109,8 +118,12 @@ void MainWindow::makeMenus() m_menuFile->addAction(m_actSaveWatchList); m_menuFile->addAction(m_actSaveAsWatchList); m_menuFile->addAction(m_actClearWatchList); + m_menuFile->addSeparator(); m_menuFile->addAction(m_actImportFromCT); m_menuFile->addAction(m_actExportAsCSV); + m_menuFile->addSeparator(); + m_menuFile->addAction(actOpenConfigDir); + m_menuFile->addSeparator(); m_menuFile->addAction(m_actQuit); m_menuEdit = menuBar()->addMenu(tr("&Edit")); diff --git a/Source/GUI/Settings/SConfig.cpp b/Source/GUI/Settings/SConfig.cpp index f48bba29..9bd18f9f 100644 --- a/Source/GUI/Settings/SConfig.cpp +++ b/Source/GUI/Settings/SConfig.cpp @@ -31,6 +31,11 @@ SConfig& SConfig::getInstance() return instance; } +QString SConfig::getSettingsFilepath() const +{ + return m_settings->fileName(); +} + QString SConfig::getWatchModel() const { return m_settings->value("watchModel", QString{}).toString(); diff --git a/Source/GUI/Settings/SConfig.h b/Source/GUI/Settings/SConfig.h index 47e2bd86..877f358c 100644 --- a/Source/GUI/Settings/SConfig.h +++ b/Source/GUI/Settings/SConfig.h @@ -12,6 +12,8 @@ class SConfig SConfig(SConfig const&) = delete; void operator=(SConfig const&) = delete; + QString getSettingsFilepath() const; + QByteArray getMainWindowGeometry() const; QByteArray getMainWindowState() const; QByteArray getSplitterState() const;