diff --git a/src/qt_gui/game_grid_frame.cpp b/src/qt_gui/game_grid_frame.cpp index c50d93472..29ea31ebc 100644 --- a/src/qt_gui/game_grid_frame.cpp +++ b/src/qt_gui/game_grid_frame.cpp @@ -42,9 +42,11 @@ void GameGridFrame::onCurrentCellChanged(int currentRow, int currentColumn, int auto itemID = (crtRow * columnCnt) + currentColumn; if (itemID > m_game_info->m_games.count() - 1) { + validCellSelected = false; BackgroundMusicPlayer::getInstance().stopMusic(); return; } + validCellSelected = true; SetGridBackgroundImage(crtRow, crtColumn); auto snd0Path = QString::fromStdString(m_game_info->m_games[itemID].snd0_path.string()); PlayBackgroundMusic(snd0Path); @@ -166,3 +168,7 @@ void GameGridFrame::RefreshGridBackgroundImage() { this->setPalette(palette); } } + +bool GameGridFrame::IsValidCellSelected() { + return validCellSelected; +} diff --git a/src/qt_gui/game_grid_frame.h b/src/qt_gui/game_grid_frame.h index 7a7540ae7..c09767684 100644 --- a/src/qt_gui/game_grid_frame.h +++ b/src/qt_gui/game_grid_frame.h @@ -30,10 +30,12 @@ private: GuiContextMenus m_gui_context_menus; std::shared_ptr m_game_info; std::shared_ptr> m_games_shared; + bool validCellSelected = false; public: explicit GameGridFrame(std::shared_ptr game_info_get, QWidget* parent = nullptr); void PopulateGameGrid(QVector m_games, bool fromSearch); + bool IsValidCellSelected(); bool cellClicked = false; int icon_size; diff --git a/src/qt_gui/main_window.cpp b/src/qt_gui/main_window.cpp index 236dabcdd..c01f0b24d 100644 --- a/src/qt_gui/main_window.cpp +++ b/src/qt_gui/main_window.cpp @@ -1034,8 +1034,11 @@ bool MainWindow::eventFilter(QObject* obj, QEvent* event) { if (event->type() == QEvent::KeyPress) { QKeyEvent* keyEvent = static_cast(event); if (keyEvent->key() == Qt::Key_Enter || keyEvent->key() == Qt::Key_Return) { - MainWindow::StartGame(); - return true; + auto tblMode = Config::getTableMode(); + if (tblMode != 2 && (tblMode != 1 || m_game_grid_frame->IsValidCellSelected())) { + StartGame(); + return true; + } } return QMainWindow::eventFilter(obj, event); }