From 6403d531bde314afcf7bbe31290dddc568121a03 Mon Sep 17 00:00:00 2001 From: Jeffrey Pfau Date: Tue, 22 Jul 2014 00:40:42 -0700 Subject: [PATCH] Add reset option and reshuffle menu items a bit --- src/platform/qt/GameController.cpp | 4 ++++ src/platform/qt/GameController.h | 1 + src/platform/qt/Window.cpp | 15 ++++++++++++--- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/platform/qt/GameController.cpp b/src/platform/qt/GameController.cpp index 47df10a55..9b903cbfd 100644 --- a/src/platform/qt/GameController.cpp +++ b/src/platform/qt/GameController.cpp @@ -147,6 +147,10 @@ void GameController::setPaused(bool paused) { } } +void GameController::reset() { + GBAThreadReset(&m_threadContext); +} + void GameController::frameAdvance() { m_pauseMutex.lock(); m_pauseAfterFrame = true; diff --git a/src/platform/qt/GameController.h b/src/platform/qt/GameController.h index 56aaae1e4..2e04e1762 100644 --- a/src/platform/qt/GameController.h +++ b/src/platform/qt/GameController.h @@ -48,6 +48,7 @@ public slots: void loadGame(const QString& path); void closeGame(); void setPaused(bool paused); + void reset(); void frameAdvance(); void keyPressed(int key); void keyReleased(int key); diff --git a/src/platform/qt/Window.cpp b/src/platform/qt/Window.cpp index 43f19a3fe..3a427d3e0 100644 --- a/src/platform/qt/Window.cpp +++ b/src/platform/qt/Window.cpp @@ -153,21 +153,26 @@ void Window::setupMenu(QMenuBar* menubar) { menubar->clear(); QMenu* fileMenu = menubar->addMenu(tr("&File")); fileMenu->addAction(tr("Load &ROM..."), this, SLOT(selectROM()), QKeySequence::Open); - fileMenu->addAction(tr("Sh&utdown"), m_controller, SLOT(closeGame())); QMenu* emulationMenu = menubar->addMenu(tr("&Emulation")); + QAction* reset = new QAction(tr("&Reset"), nullptr); + reset->setShortcut(tr("Ctrl+R")); + connect(reset, SIGNAL(triggered()), m_controller, SLOT(reset())); + m_gameActions.append(reset); + emulationMenu->addAction(reset); + emulationMenu->addAction(tr("Sh&utdown"), m_controller, SLOT(closeGame())); + emulationMenu->addSeparator(); + QAction* pause = new QAction(tr("&Pause"), nullptr); pause->setChecked(false); pause->setCheckable(true); pause->setShortcut(tr("Ctrl+P")); - pause->setDisabled(true); connect(pause, SIGNAL(triggered(bool)), m_controller, SLOT(setPaused(bool))); m_gameActions.append(pause); emulationMenu->addAction(pause); QAction* frameAdvance = new QAction(tr("&Next frame"), nullptr); frameAdvance->setShortcut(tr("Ctrl+N")); - frameAdvance->setDisabled(true); connect(frameAdvance, SIGNAL(triggered()), m_controller, SLOT(frameAdvance())); m_gameActions.append(frameAdvance); emulationMenu->addAction(frameAdvance); @@ -185,4 +190,8 @@ void Window::setupMenu(QMenuBar* menubar) { connect(gdbWindow, SIGNAL(triggered()), this, SLOT(gdbOpen())); debuggingMenu->addAction(gdbWindow); #endif + + foreach (QAction* action, m_gameActions) { + action->setDisabled(true); + } }