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() {
m_pauseMutex.lock();
m_pauseAfterFrame = true;

View File

@ -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);

View File

@ -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);
}
}