diff --git a/icons/debug-pause.png b/icons/debug-pause.png
new file mode 100644
index 00000000..c8b4fe22
Binary files /dev/null and b/icons/debug-pause.png differ
diff --git a/resources.qrc b/resources.qrc
index 49ab0be8..ebfc204d 100644
--- a/resources.qrc
+++ b/resources.qrc
@@ -15,6 +15,7 @@
icons/camera.png
icons/reticle.png
icons/debug-run.png
+ icons/debug-pause.png
icons/StepInto.png
icons/StepOver.png
icons/StepOut.png
diff --git a/src/drivers/Qt/ConsoleDebugger.cpp b/src/drivers/Qt/ConsoleDebugger.cpp
index 01a278da..c1c300d7 100644
--- a/src/drivers/Qt/ConsoleDebugger.cpp
+++ b/src/drivers/Qt/ConsoleDebugger.cpp
@@ -530,7 +530,7 @@ QMenuBar *ConsoleDebugger::buildMenuBar(void)
debugMenu = menuBar->addMenu(tr("&Debug"));
// Debug -> Run
- act = new QAction(tr("&Run"), this);
+ dbgRunAct[0] = act = new QAction(tr("&Run"), this);
act->setShortcut(QKeySequence( tr("F5") ) );
act->setStatusTip(tr("Run"));
//act->setIcon( style()->standardIcon( QStyle::SP_MediaPlay ) );
@@ -539,6 +539,16 @@ QMenuBar *ConsoleDebugger::buildMenuBar(void)
debugMenu->addAction(act);
+ // Debug -> Pause
+ dbgPauseAct[0] = act = new QAction(tr("&Pause"), this);
+ act->setShortcut(QKeySequence( tr("F6") ) );
+ act->setStatusTip(tr("Pause"));
+ //act->setIcon( style()->standardIcon( QStyle::SP_MediaPause ) );
+ act->setIcon( QIcon(":icons/debug-pause.png") );
+ connect( act, SIGNAL(triggered()), this, SLOT(debugStepIntoCB(void)) );
+
+ debugMenu->addAction(act);
+
// Debug -> Step Into
act = new QAction(tr("Step &Into"), this);
act->setShortcut(QKeySequence( tr("F11") ) );
@@ -577,7 +587,7 @@ QMenuBar *ConsoleDebugger::buildMenuBar(void)
// Debug -> Run Line
act = new QAction(tr("Run &Line"), this);
- act->setShortcut(QKeySequence( tr("F6") ) );
+ act->setShortcut(QKeySequence( tr("F7") ) );
act->setStatusTip(tr("Run Line"));
act->setIcon( QIcon(":icons/RunPpuScanline.png") );
connect( act, SIGNAL(triggered()), this, SLOT(debugRunLineCB(void)) );
@@ -586,7 +596,7 @@ QMenuBar *ConsoleDebugger::buildMenuBar(void)
// Debug -> Run 128 Lines
act = new QAction(tr("Run &128 Lines"), this);
- act->setShortcut(QKeySequence( tr("F7") ) );
+ act->setShortcut(QKeySequence( tr("F8") ) );
act->setStatusTip(tr("Run 128 Lines"));
act->setIcon( QIcon(":icons/RunPpuFrame.png") );
connect( act, SIGNAL(triggered()), this, SLOT(debugRunLine128CB(void)) );
@@ -763,7 +773,7 @@ QToolBar *ConsoleDebugger::buildToolBar(void)
toolBar->addSeparator();
// Debug -> Run
- act = new QAction(tr("&Run (F5)"), this);
+ dbgRunAct[1] = act = new QAction(tr("&Run (F5)"), this);
//act->setShortcut(QKeySequence( tr("F5") ) );
act->setStatusTip(tr("Run"));
//act->setIcon( style()->standardIcon( QStyle::SP_MediaPlay ) );
@@ -772,6 +782,16 @@ QToolBar *ConsoleDebugger::buildToolBar(void)
toolBar->addAction(act);
+ // Debug -> Pause
+ dbgPauseAct[1] = act = new QAction(tr("&Pause (F6)"), this);
+ //act->setShortcut(QKeySequence( tr("F6") ) );
+ act->setStatusTip(tr("Pause"));
+ //act->setIcon( style()->standardIcon( QStyle::SP_MediaPause ) );
+ act->setIcon( QIcon(":icons/debug-pause.png") );
+ connect( act, SIGNAL(triggered()), this, SLOT(debugStepIntoCB(void)) );
+
+ toolBar->addAction(act);
+
// Debug -> Step Into
act = new QAction(tr("Step &Into (F11)"), this);
//act->setShortcut(QKeySequence( tr("F11") ) );
@@ -802,8 +822,8 @@ QToolBar *ConsoleDebugger::buildToolBar(void)
toolBar->addSeparator();
// Debug -> Run Line
- act = new QAction(tr("Run &Line (F6)"), this);
- //act->setShortcut(QKeySequence( tr("F6") ) );
+ act = new QAction(tr("Run &Line (F7)"), this);
+ //act->setShortcut(QKeySequence( tr("F7") ) );
act->setStatusTip(tr("Run Line"));
act->setIcon( QIcon(":icons/RunPpuScanline.png") );
connect( act, SIGNAL(triggered()), this, SLOT(debugRunLineCB(void)) );
@@ -811,8 +831,8 @@ QToolBar *ConsoleDebugger::buildToolBar(void)
toolBar->addAction(act);
// Debug -> Run 128 Lines
- act = new QAction(tr("Run &128 Lines (F7)"), this);
- //act->setShortcut(QKeySequence( tr("F7") ) );
+ act = new QAction(tr("Run &128 Lines (F8)"), this);
+ //act->setShortcut(QKeySequence( tr("F8") ) );
act->setStatusTip(tr("Run 128 Lines"));
act->setIcon( QIcon(":icons/RunPpuFrame.png") );
connect( act, SIGNAL(triggered()), this, SLOT(debugRunLine128CB(void)) );
@@ -4009,6 +4029,21 @@ void ConsoleDebugger::updatePeriodic(void)
emuStatLbl->setStyleSheet("background-color: green; color: white;");
}
+ if ( FCEUI_EmulationPaused() )
+ {
+ dbgRunAct[0]->setEnabled(true);
+ dbgRunAct[1]->setEnabled(true);
+ dbgPauseAct[0]->setEnabled(false);
+ dbgPauseAct[1]->setEnabled(false);
+ }
+ else
+ {
+ dbgRunAct[0]->setEnabled(false);
+ dbgRunAct[1]->setEnabled(false);
+ dbgPauseAct[0]->setEnabled(true);
+ dbgPauseAct[1]->setEnabled(true);
+ }
+
if ( waitingAtBp && (lastBpIdx == BREAK_TYPE_CYCLES_EXCEED) )
{
cpuCyclesLbl1->setStyleSheet("background-color: blue; color: white;");
diff --git a/src/drivers/Qt/ConsoleDebugger.h b/src/drivers/Qt/ConsoleDebugger.h
index 2107ecfe..d11b5fc2 100644
--- a/src/drivers/Qt/ConsoleDebugger.h
+++ b/src/drivers/Qt/ConsoleDebugger.h
@@ -446,6 +446,8 @@ class ConsoleDebugger : public QDialog
//void keyReleaseEvent(QKeyEvent *event) override;
//QTreeWidget *tree;
+ QAction *dbgRunAct[2];
+ QAction *dbgPauseAct[2];
QToolBar *toolBar;
QScrollBar *vbar;
QScrollBar *hbar;