Skip to content

Commit

Permalink
Add **Open Configuration Directory** action to top-bar **File** menu.
Browse files Browse the repository at this point in the history
Bonus: A number of action separators have been added between the
preexisting menu actions.
  • Loading branch information
cristian64 committed May 12, 2024
1 parent 2070819 commit a1d0546
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 0 deletions.
13 changes: 13 additions & 0 deletions Source/GUI/MainWindow.cpp
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
#include "MainWindow.h"

#include <QApplication>
#include <QDesktopServices>
#include <QDialog>
#include <QFileInfo>
#include <QHBoxLayout>
#include <QIcon>
#include <QMenuBar>
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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);

Expand All @@ -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"));
Expand Down
5 changes: 5 additions & 0 deletions Source/GUI/Settings/SConfig.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down
2 changes: 2 additions & 0 deletions Source/GUI/Settings/SConfig.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down

0 comments on commit a1d0546

Please sign in to comment.