From cdfbab41030439c70fc1c9bb5ad2583953bc86e1 Mon Sep 17 00:00:00 2001 From: ElBread3 <92335081+ElBread3@users.noreply.github.com> Date: Thu, 8 Aug 2024 08:10:27 -0500 Subject: [PATCH 1/3] add double-click to start game --- src/qt_gui/game_grid_frame.cpp | 1 + src/qt_gui/game_grid_frame.h | 1 + src/qt_gui/game_list_frame.cpp | 2 ++ src/qt_gui/game_list_frame.h | 1 + src/qt_gui/main_window.cpp | 54 ++++++++++++++++++---------------- src/qt_gui/main_window.h | 1 + 6 files changed, 34 insertions(+), 26 deletions(-) diff --git a/src/qt_gui/game_grid_frame.cpp b/src/qt_gui/game_grid_frame.cpp index 3d5ab14ec..3d05d2b16 100644 --- a/src/qt_gui/game_grid_frame.cpp +++ b/src/qt_gui/game_grid_frame.cpp @@ -37,6 +37,7 @@ GameGridFrame::GameGridFrame(std::shared_ptr game_info_get, QWidg crtColumn = this->currentColumn(); columnCnt = this->columnCount(); }); + connect(this, &QTableWidget::cellDoubleClicked, this, &MainWindow::StartGame); } void GameGridFrame::PopulateGameGrid(QVector m_games_search, bool fromSearch) { diff --git a/src/qt_gui/game_grid_frame.h b/src/qt_gui/game_grid_frame.h index ce775315e..305a58b78 100644 --- a/src/qt_gui/game_grid_frame.h +++ b/src/qt_gui/game_grid_frame.h @@ -19,6 +19,7 @@ #include "game_info.h" #include "game_list_utils.h" #include "gui_context_menus.h" +#include "main_window.h" class GameGridFrame : public QTableWidget { Q_OBJECT diff --git a/src/qt_gui/game_list_frame.cpp b/src/qt_gui/game_list_frame.cpp index 2699c9615..703dc5e69 100644 --- a/src/qt_gui/game_list_frame.cpp +++ b/src/qt_gui/game_list_frame.cpp @@ -54,6 +54,8 @@ GameListFrame::GameListFrame(std::shared_ptr game_info_get, QWidg connect(this->horizontalScrollBar(), &QScrollBar::valueChanged, this, &GameListFrame::RefreshListBackgroundImage); + connect(this, &QTableWidget::cellDoubleClicked, this, &MainWindow::StartGame); + this->horizontalHeader()->setSortIndicatorShown(true); this->horizontalHeader()->setSectionsClickable(true); QObject::connect( diff --git a/src/qt_gui/game_list_frame.h b/src/qt_gui/game_list_frame.h index d8bccf466..bcb3f4b19 100644 --- a/src/qt_gui/game_list_frame.h +++ b/src/qt_gui/game_list_frame.h @@ -20,6 +20,7 @@ #include "game_info.h" #include "game_list_utils.h" #include "gui_context_menus.h" +#include "main_window.h" class GameListFrame : public QTableWidget { Q_OBJECT diff --git a/src/qt_gui/main_window.cpp b/src/qt_gui/main_window.cpp index b3778be07..6b51a371e 100644 --- a/src/qt_gui/main_window.cpp +++ b/src/qt_gui/main_window.cpp @@ -179,32 +179,7 @@ void MainWindow::CreateConnects() { } }); - connect(ui->playButton, &QPushButton::clicked, this, [this]() { - QString gamePath = ""; - int table_mode = Config::getTableMode(); - if (table_mode == 0) { - if (m_game_list_frame->currentItem()) { - int itemID = m_game_list_frame->currentItem()->row(); - gamePath = QString::fromStdString(m_game_info->m_games[itemID].path + "/eboot.bin"); - } - } else if (table_mode == 1) { - if (m_game_grid_frame->cellClicked) { - int itemID = (m_game_grid_frame->crtRow * m_game_grid_frame->columnCnt) + - m_game_grid_frame->crtColumn; - gamePath = QString::fromStdString(m_game_info->m_games[itemID].path + "/eboot.bin"); - } - } else { - if (m_elf_viewer->currentItem()) { - int itemID = m_elf_viewer->currentItem()->row(); - gamePath = QString::fromStdString(m_elf_viewer->m_elf_list[itemID].toStdString()); - } - } - if (gamePath != "") { - AddRecentFiles(gamePath); - Core::Emulator emulator; - emulator.Run(gamePath.toUtf8().constData()); - } - }); + connect(ui->playButton, &QPushButton::clicked, this, &MainWindow::StartGame); connect(ui->setIconSizeTinyAct, &QAction::triggered, this, [this]() { if (isTableList) { @@ -386,6 +361,33 @@ void MainWindow::CreateConnects() { }); } +void MainWindow::StartGame() { + QString gamePath = ""; + int table_mode = Config::getTableMode(); + if (table_mode == 0) { + if (m_game_list_frame->currentItem()) { + int itemID = m_game_list_frame->currentItem()->row(); + gamePath = QString::fromStdString(m_game_info->m_games[itemID].path + "/eboot.bin"); + } + } else if (table_mode == 1) { + if (m_game_grid_frame->cellClicked) { + int itemID = (m_game_grid_frame->crtRow * m_game_grid_frame->columnCnt) + + m_game_grid_frame->crtColumn; + gamePath = QString::fromStdString(m_game_info->m_games[itemID].path + "/eboot.bin"); + } + } else { + if (m_elf_viewer->currentItem()) { + int itemID = m_elf_viewer->currentItem()->row(); + gamePath = QString::fromStdString(m_elf_viewer->m_elf_list[itemID].toStdString()); + } + } + if (gamePath != "") { + AddRecentFiles(gamePath); + Core::Emulator emulator; + emulator.Run(gamePath.toUtf8().constData()); + } +} + void MainWindow::SearchGameTable(const QString& text) { if (isTableList) { for (int row = 0; row < m_game_list_frame->rowCount(); row++) { diff --git a/src/qt_gui/main_window.h b/src/qt_gui/main_window.h index d1ef48dc7..39a5d049e 100644 --- a/src/qt_gui/main_window.h +++ b/src/qt_gui/main_window.h @@ -39,6 +39,7 @@ public: bool Init(); void InstallDragDropPkg(std::filesystem::path file, int pkgNum, int nPkg); void InstallDirectory(); + void StartGame(); private Q_SLOTS: void ConfigureGuiFromSettings(); From 80355ba4a8da8e1d36a9c805728e9d9bbe81650a Mon Sep 17 00:00:00 2001 From: ElBread3 <92335081+ElBread3@users.noreply.github.com> Date: Thu, 8 Aug 2024 10:24:29 -0500 Subject: [PATCH 2/3] simplify (thx raziel) --- src/qt_gui/game_grid_frame.cpp | 1 - src/qt_gui/game_grid_frame.h | 1 - src/qt_gui/game_list_frame.cpp | 2 -- src/qt_gui/game_list_frame.h | 1 - src/qt_gui/main_window.cpp | 3 +++ 5 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/qt_gui/game_grid_frame.cpp b/src/qt_gui/game_grid_frame.cpp index 3d05d2b16..3d5ab14ec 100644 --- a/src/qt_gui/game_grid_frame.cpp +++ b/src/qt_gui/game_grid_frame.cpp @@ -37,7 +37,6 @@ GameGridFrame::GameGridFrame(std::shared_ptr game_info_get, QWidg crtColumn = this->currentColumn(); columnCnt = this->columnCount(); }); - connect(this, &QTableWidget::cellDoubleClicked, this, &MainWindow::StartGame); } void GameGridFrame::PopulateGameGrid(QVector m_games_search, bool fromSearch) { diff --git a/src/qt_gui/game_grid_frame.h b/src/qt_gui/game_grid_frame.h index 305a58b78..ce775315e 100644 --- a/src/qt_gui/game_grid_frame.h +++ b/src/qt_gui/game_grid_frame.h @@ -19,7 +19,6 @@ #include "game_info.h" #include "game_list_utils.h" #include "gui_context_menus.h" -#include "main_window.h" class GameGridFrame : public QTableWidget { Q_OBJECT diff --git a/src/qt_gui/game_list_frame.cpp b/src/qt_gui/game_list_frame.cpp index 703dc5e69..2699c9615 100644 --- a/src/qt_gui/game_list_frame.cpp +++ b/src/qt_gui/game_list_frame.cpp @@ -54,8 +54,6 @@ GameListFrame::GameListFrame(std::shared_ptr game_info_get, QWidg connect(this->horizontalScrollBar(), &QScrollBar::valueChanged, this, &GameListFrame::RefreshListBackgroundImage); - connect(this, &QTableWidget::cellDoubleClicked, this, &MainWindow::StartGame); - this->horizontalHeader()->setSortIndicatorShown(true); this->horizontalHeader()->setSectionsClickable(true); QObject::connect( diff --git a/src/qt_gui/game_list_frame.h b/src/qt_gui/game_list_frame.h index bcb3f4b19..d8bccf466 100644 --- a/src/qt_gui/game_list_frame.h +++ b/src/qt_gui/game_list_frame.h @@ -20,7 +20,6 @@ #include "game_info.h" #include "game_list_utils.h" #include "gui_context_menus.h" -#include "main_window.h" class GameListFrame : public QTableWidget { Q_OBJECT diff --git a/src/qt_gui/main_window.cpp b/src/qt_gui/main_window.cpp index 6b51a371e..db60c644b 100644 --- a/src/qt_gui/main_window.cpp +++ b/src/qt_gui/main_window.cpp @@ -180,6 +180,9 @@ void MainWindow::CreateConnects() { }); connect(ui->playButton, &QPushButton::clicked, this, &MainWindow::StartGame); + connect(m_game_list_grid.get(), &QTableWidget::cellDoubleClicked, this, &MainWindow::StartGame); + connect(m_game_list_frame.get(), &QTableWidget::cellDoubleClicked, this, + &MainWindow::StartGame); connect(ui->setIconSizeTinyAct, &QAction::triggered, this, [this]() { if (isTableList) { From 9873b33a4bc63eab02dcccb59fb771ecad886d48 Mon Sep 17 00:00:00 2001 From: ElBread3 <92335081+ElBread3@users.noreply.github.com> Date: Thu, 8 Aug 2024 11:35:33 -0500 Subject: [PATCH 3/3] what is a "list grid" lol --- src/qt_gui/main_window.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/qt_gui/main_window.cpp b/src/qt_gui/main_window.cpp index db60c644b..0d15ca937 100644 --- a/src/qt_gui/main_window.cpp +++ b/src/qt_gui/main_window.cpp @@ -180,7 +180,8 @@ void MainWindow::CreateConnects() { }); connect(ui->playButton, &QPushButton::clicked, this, &MainWindow::StartGame); - connect(m_game_list_grid.get(), &QTableWidget::cellDoubleClicked, this, &MainWindow::StartGame); + connect(m_game_grid_frame.get(), &QTableWidget::cellDoubleClicked, this, + &MainWindow::StartGame); connect(m_game_list_frame.get(), &QTableWidget::cellDoubleClicked, this, &MainWindow::StartGame);