Added logic to highlight ASM view selected line.
This commit is contained in:
parent
59e4ca1ff9
commit
abd4089cbb
|
@ -361,6 +361,7 @@ ConsoleDebugger::ConsoleDebugger(QWidget *parent)
|
||||||
bmFrame = new QGroupBox( tr("Address Bookmarks") );
|
bmFrame = new QGroupBox( tr("Address Bookmarks") );
|
||||||
bmTree = new QTreeWidget();
|
bmTree = new QTreeWidget();
|
||||||
selBmAddr = new QLineEdit();
|
selBmAddr = new QLineEdit();
|
||||||
|
selBmAddrVal = 0;
|
||||||
|
|
||||||
bmTree->setColumnCount(2);
|
bmTree->setColumnCount(2);
|
||||||
|
|
||||||
|
@ -383,15 +384,12 @@ ConsoleDebugger::ConsoleDebugger(QWidget *parent)
|
||||||
|
|
||||||
button = new QPushButton( tr("Add") );
|
button = new QPushButton( tr("Add") );
|
||||||
vbox->addWidget( button );
|
vbox->addWidget( button );
|
||||||
button->setEnabled(false); // TODO
|
|
||||||
|
|
||||||
button = new QPushButton( tr("Delete") );
|
button = new QPushButton( tr("Delete") );
|
||||||
vbox->addWidget( button );
|
vbox->addWidget( button );
|
||||||
button->setEnabled(false); // TODO
|
|
||||||
|
|
||||||
button = new QPushButton( tr("Name") );
|
button = new QPushButton( tr("Name") );
|
||||||
vbox->addWidget( button );
|
vbox->addWidget( button );
|
||||||
button->setEnabled(false); // TODO
|
|
||||||
|
|
||||||
hbox->addWidget( bmTree );
|
hbox->addWidget( bmTree );
|
||||||
hbox->addLayout( vbox );
|
hbox->addLayout( vbox );
|
||||||
|
@ -1432,6 +1430,17 @@ void ConsoleDebugger::asmViewCtxMenuAddBP(void)
|
||||||
|
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
|
void ConsoleDebugger::setBookmarkSelectedAddress( int addr )
|
||||||
|
{
|
||||||
|
char stmp[32];
|
||||||
|
|
||||||
|
sprintf( stmp, "%04X", addr );
|
||||||
|
|
||||||
|
selBmAddr->setText( tr(stmp) );
|
||||||
|
|
||||||
|
selBmAddrVal = addr;
|
||||||
|
}
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
void ConsoleDebugger::asmViewCtxMenuAddSym(void)
|
void ConsoleDebugger::asmViewCtxMenuAddSym(void)
|
||||||
{
|
{
|
||||||
openDebugSymbolEditWindow( asmView->getCtxMenuAddr() );
|
openDebugSymbolEditWindow( asmView->getCtxMenuAddr() );
|
||||||
|
@ -2724,17 +2733,19 @@ void QAsmView::mouseMoveEvent(QMouseEvent * event)
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
void QAsmView::mousePressEvent(QMouseEvent * event)
|
void QAsmView::mousePressEvent(QMouseEvent * event)
|
||||||
{
|
{
|
||||||
//int line;
|
int line;
|
||||||
//QPoint c = convPixToCursor( event->pos() );
|
QPoint c = convPixToCursor( event->pos() );
|
||||||
|
|
||||||
//line = lineOffset + c.y();
|
line = lineOffset + c.y();
|
||||||
//
|
|
||||||
//if ( line < asmEntry.size() )
|
if ( line < asmEntry.size() )
|
||||||
//{
|
{
|
||||||
// int addr;
|
int addr;
|
||||||
|
|
||||||
// addr = asmEntry[line]->addr;
|
addr = asmEntry[line]->addr;
|
||||||
//}
|
|
||||||
|
parent->setBookmarkSelectedAddress( addr );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
void QAsmView::contextMenuEvent(QContextMenuEvent *event)
|
void QAsmView::contextMenuEvent(QContextMenuEvent *event)
|
||||||
|
@ -2769,7 +2780,7 @@ void QAsmView::contextMenuEvent(QContextMenuEvent *event)
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
void QAsmView::paintEvent(QPaintEvent *event)
|
void QAsmView::paintEvent(QPaintEvent *event)
|
||||||
{
|
{
|
||||||
int x,y,l, row, nrow;
|
int x,y,l, row, nrow, selAddr;
|
||||||
QPainter painter(this);
|
QPainter painter(this);
|
||||||
|
|
||||||
painter.setFont(font);
|
painter.setFont(font);
|
||||||
|
@ -2801,6 +2812,7 @@ void QAsmView::paintEvent(QPaintEvent *event)
|
||||||
{
|
{
|
||||||
lineOffset = maxLineOffset;
|
lineOffset = maxLineOffset;
|
||||||
}
|
}
|
||||||
|
selAddr = parent->getBookmarkSelectedAddress();
|
||||||
|
|
||||||
painter.fillRect( 0, 0, viewWidth, viewHeight, this->palette().color(QPalette::Background) );
|
painter.fillRect( 0, 0, viewWidth, viewHeight, this->palette().color(QPalette::Background) );
|
||||||
|
|
||||||
|
@ -2827,6 +2839,27 @@ void QAsmView::paintEvent(QPaintEvent *event)
|
||||||
painter.fillRect( 0, y - pxLineSpacing + pxLineLead, viewWidth, pxLineSpacing, QColor("light blue") );
|
painter.fillRect( 0, y - pxLineSpacing + pxLineLead, viewWidth, pxLineSpacing, QColor("light blue") );
|
||||||
}
|
}
|
||||||
painter.drawText( x, y, tr(asmEntry[l]->text.c_str()) );
|
painter.drawText( x, y, tr(asmEntry[l]->text.c_str()) );
|
||||||
|
|
||||||
|
if ( selAddr == asmEntry[l]->addr )
|
||||||
|
{ // Highlight ASM line for selected address.
|
||||||
|
if ( asmEntry[l]->type == dbg_asm_entry_t::ASM_TEXT )
|
||||||
|
{
|
||||||
|
int ax;
|
||||||
|
char addrString[16];
|
||||||
|
|
||||||
|
ax = 4*pxCharWidth;
|
||||||
|
|
||||||
|
painter.fillRect( ax, y - pxLineSpacing + pxLineLead, 4*pxCharWidth, pxLineSpacing, QColor("blue") );
|
||||||
|
|
||||||
|
sprintf( addrString, "%04X", selAddr );
|
||||||
|
|
||||||
|
painter.setPen( this->palette().color(QPalette::Background));
|
||||||
|
|
||||||
|
painter.drawText( ax, y, tr(addrString) );
|
||||||
|
|
||||||
|
painter.setPen( this->palette().color(QPalette::WindowText));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
y += pxLineSpacing;
|
y += pxLineSpacing;
|
||||||
}
|
}
|
||||||
|
|
|
@ -134,6 +134,8 @@ class ConsoleDebugger : public QDialog
|
||||||
void breakPointNotify(int bpNum);
|
void breakPointNotify(int bpNum);
|
||||||
void openBpEditWindow(int editIdx = -1, watchpointinfo *wp = NULL );
|
void openBpEditWindow(int editIdx = -1, watchpointinfo *wp = NULL );
|
||||||
void openDebugSymbolEditWindow( int addr );
|
void openDebugSymbolEditWindow( int addr );
|
||||||
|
void setBookmarkSelectedAddress( int addr );
|
||||||
|
int getBookmarkSelectedAddress(void){ return selBmAddrVal; };
|
||||||
|
|
||||||
QLabel *asmLineSelLbl;
|
QLabel *asmLineSelLbl;
|
||||||
protected:
|
protected:
|
||||||
|
@ -189,6 +191,7 @@ class ConsoleDebugger : public QDialog
|
||||||
QTimer *periodicTimer;
|
QTimer *periodicTimer;
|
||||||
QFont font;
|
QFont font;
|
||||||
|
|
||||||
|
int selBmAddrVal;
|
||||||
bool windowUpdateReq;
|
bool windowUpdateReq;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
Loading…
Reference in New Issue