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;