Add reset option and reshuffle menu items a bit

This commit is contained in:
Jeffrey Pfau 2014-07-22 00:40:42 -07:00
parent 71211bac46
commit 6403d531bd
3 changed files with 17 additions and 3 deletions

View File

@ -147,6 +147,10 @@ void GameController::setPaused(bool paused) {
} }
} }
void GameController::reset() {
GBAThreadReset(&m_threadContext);
}
void GameController::frameAdvance() { void GameController::frameAdvance() {
m_pauseMutex.lock(); m_pauseMutex.lock();
m_pauseAfterFrame = true; m_pauseAfterFrame = true;

View File

@ -48,6 +48,7 @@ public slots:
void loadGame(const QString& path); void loadGame(const QString& path);
void closeGame(); void closeGame();
void setPaused(bool paused); void setPaused(bool paused);
void reset();
void frameAdvance(); void frameAdvance();
void keyPressed(int key); void keyPressed(int key);
void keyReleased(int key); void keyReleased(int key);

View File

@ -153,21 +153,26 @@ void Window::setupMenu(QMenuBar* menubar) {
menubar->clear(); menubar->clear();
QMenu* fileMenu = menubar->addMenu(tr("&File")); QMenu* fileMenu = menubar->addMenu(tr("&File"));
fileMenu->addAction(tr("Load &ROM..."), this, SLOT(selectROM()), QKeySequence::Open); 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")); 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); QAction* pause = new QAction(tr("&Pause"), nullptr);
pause->setChecked(false); pause->setChecked(false);
pause->setCheckable(true); pause->setCheckable(true);
pause->setShortcut(tr("Ctrl+P")); pause->setShortcut(tr("Ctrl+P"));
pause->setDisabled(true);
connect(pause, SIGNAL(triggered(bool)), m_controller, SLOT(setPaused(bool))); connect(pause, SIGNAL(triggered(bool)), m_controller, SLOT(setPaused(bool)));
m_gameActions.append(pause); m_gameActions.append(pause);
emulationMenu->addAction(pause); emulationMenu->addAction(pause);
QAction* frameAdvance = new QAction(tr("&Next frame"), nullptr); QAction* frameAdvance = new QAction(tr("&Next frame"), nullptr);
frameAdvance->setShortcut(tr("Ctrl+N")); frameAdvance->setShortcut(tr("Ctrl+N"));
frameAdvance->setDisabled(true);
connect(frameAdvance, SIGNAL(triggered()), m_controller, SLOT(frameAdvance())); connect(frameAdvance, SIGNAL(triggered()), m_controller, SLOT(frameAdvance()));
m_gameActions.append(frameAdvance); m_gameActions.append(frameAdvance);
emulationMenu->addAction(frameAdvance); emulationMenu->addAction(frameAdvance);
@ -185,4 +190,8 @@ void Window::setupMenu(QMenuBar* menubar) {
connect(gdbWindow, SIGNAL(triggered()), this, SLOT(gdbOpen())); connect(gdbWindow, SIGNAL(triggered()), this, SLOT(gdbOpen()));
debuggingMenu->addAction(gdbWindow); debuggingMenu->addAction(gdbWindow);
#endif #endif
foreach (QAction* action, m_gameActions) {
action->setDisabled(true);
}
} }