From 0a70f46a9fbbf67f735bc7f0f7f7319ae6a5ce2d Mon Sep 17 00:00:00 2001 From: mjbudd77 Date: Thu, 5 Aug 2021 05:17:17 -0400 Subject: [PATCH] Added a debug pause button to the Qt debugger tool bar. --- icons/debug-pause.png | Bin 0 -> 464 bytes resources.qrc | 1 + src/drivers/Qt/ConsoleDebugger.cpp | 51 ++++++++++++++++++++++++----- src/drivers/Qt/ConsoleDebugger.h | 2 ++ 4 files changed, 46 insertions(+), 8 deletions(-) create mode 100644 icons/debug-pause.png diff --git a/icons/debug-pause.png b/icons/debug-pause.png new file mode 100644 index 0000000000000000000000000000000000000000..c8b4fe2251f885e2362b7ef36b85d6c3a178f7c8 GIT binary patch literal 464 zcmV;>0WbcEP)fkXfR0bNN% zK~y-)&5}!Q6hRDzzbd<#?kMWj*ortnatw&zNJwy`D9RZCg*!wL5UgjGNHA&oVHW+! z028qUFG{7aT)%!l;9p1DyPy6&J1w6g;v*0`zpdA6&YwMbzc2ds_4Qc{Lq320^k$!5 zzj=4I*=`dMd4^_&s>bET6_*!RsOsQmtPgN=Ura3y+#M02?|VLd`GAOE?sQ$Z@Y~Nf zBRBg~z|0U4c6Z+?v_MoabGo)gM7V2qh$y0hKP1q!JDR3JR1gu|*FYL}%{SWi2j!|- zoXv6H10NkUZ9^gMh7Gi5vrqV;>BD-9GXJBeDwkV$vM~cQN1dU zzy8jT>#CjwmhIYXH>X4*rDN*a%Jzqz;k7x5ETI&B|H7dZO>0000icons/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;