mirror of https://github.com/mgba-emu/mgba.git
Add reset option and reshuffle menu items a bit
This commit is contained in:
parent
71211bac46
commit
6403d531bd
|
@ -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;
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue