ASM view port in work.
This commit is contained in:
parent
fc201b5ff7
commit
e688ebe23b
|
@ -291,6 +291,8 @@ ConsoleDebugger::ConsoleDebugger(QWidget *parent)
|
||||||
periodicTimer = new QTimer( this );
|
periodicTimer = new QTimer( this );
|
||||||
|
|
||||||
connect( periodicTimer, &QTimer::timeout, this, &ConsoleDebugger::updatePeriodic );
|
connect( periodicTimer, &QTimer::timeout, this, &ConsoleDebugger::updatePeriodic );
|
||||||
|
//connect( hbar, SIGNAL(valueChanged(int)), this, SLOT(hbarChanged(int)) );
|
||||||
|
connect( vbar, SIGNAL(valueChanged(int)), this, SLOT(vbarChanged(int)) );
|
||||||
|
|
||||||
periodicTimer->start( 100 ); // 10hz
|
periodicTimer->start( 100 ); // 10hz
|
||||||
}
|
}
|
||||||
|
@ -602,6 +604,7 @@ void QAsmView::updateAssemblyView(void)
|
||||||
asmEntry.push_back(a);
|
asmEntry.push_back(a);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
vbar->setMaximum( asmEntry.size() );
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
void ConsoleDebugger::updateWindowData(void)
|
void ConsoleDebugger::updateWindowData(void)
|
||||||
|
@ -629,6 +632,12 @@ void ConsoleDebugger::breakPointNotify( int addr )
|
||||||
windowUpdateReq = true;
|
windowUpdateReq = true;
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
|
void ConsoleDebugger::vbarChanged(int value)
|
||||||
|
{
|
||||||
|
//printf("VBar Changed: %i\n", value);
|
||||||
|
asmView->setLine( value );
|
||||||
|
}
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
void FCEUD_DebugBreakpoint( int addr )
|
void FCEUD_DebugBreakpoint( int addr )
|
||||||
{
|
{
|
||||||
std::list <ConsoleDebugger*>::iterator it;
|
std::list <ConsoleDebugger*>::iterator it;
|
||||||
|
@ -690,6 +699,11 @@ void QAsmView::asmClear(void)
|
||||||
asmEntry.clear();
|
asmEntry.clear();
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
|
void QAsmView::setLine(int lineNum)
|
||||||
|
{
|
||||||
|
lineOffset = lineNum;
|
||||||
|
}
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
void QAsmView::calcFontData(void)
|
void QAsmView::calcFontData(void)
|
||||||
{
|
{
|
||||||
this->setFont(font);
|
this->setFont(font);
|
||||||
|
@ -776,6 +790,17 @@ void QAsmView::paintEvent(QPaintEvent *event)
|
||||||
{
|
{
|
||||||
cursorPosY = viewLines-1;
|
cursorPosY = viewLines-1;
|
||||||
}
|
}
|
||||||
|
maxLineOffset = asmEntry.size() - nrow + 1;
|
||||||
|
|
||||||
|
if ( maxLineOffset < 0 )
|
||||||
|
{
|
||||||
|
maxLineOffset = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( lineOffset > maxLineOffset )
|
||||||
|
{
|
||||||
|
lineOffset = maxLineOffset;
|
||||||
|
}
|
||||||
|
|
||||||
painter.fillRect( 0, 0, viewWidth, viewHeight, this->palette().color(QPalette::Background) );
|
painter.fillRect( 0, 0, viewWidth, viewHeight, this->palette().color(QPalette::Background) );
|
||||||
|
|
||||||
|
|
|
@ -60,6 +60,7 @@ class QAsmView : public QWidget
|
||||||
void updateAssemblyView(void);
|
void updateAssemblyView(void);
|
||||||
void asmClear(void);
|
void asmClear(void);
|
||||||
int getAsmLineFromAddr(int addr);
|
int getAsmLineFromAddr(int addr);
|
||||||
|
void setLine(int lineNum);
|
||||||
protected:
|
protected:
|
||||||
void paintEvent(QPaintEvent *event);
|
void paintEvent(QPaintEvent *event);
|
||||||
void keyPressEvent(QKeyEvent *event);
|
void keyPressEvent(QKeyEvent *event);
|
||||||
|
@ -155,5 +156,6 @@ class ConsoleDebugger : public QDialog
|
||||||
void closeWindow(void);
|
void closeWindow(void);
|
||||||
private slots:
|
private slots:
|
||||||
void updatePeriodic(void);
|
void updatePeriodic(void);
|
||||||
|
void vbarChanged(int value);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -1764,6 +1764,11 @@ void QHexEdit::paintEvent(QPaintEvent *event)
|
||||||
//
|
//
|
||||||
maxLineOffset = mb.numLines() - nrow + 1;
|
maxLineOffset = mb.numLines() - nrow + 1;
|
||||||
|
|
||||||
|
if ( maxLineOffset < 0 )
|
||||||
|
{
|
||||||
|
maxLineOffset = 0;
|
||||||
|
}
|
||||||
|
|
||||||
if ( lineOffset > maxLineOffset )
|
if ( lineOffset > maxLineOffset )
|
||||||
{
|
{
|
||||||
lineOffset = maxLineOffset;
|
lineOffset = maxLineOffset;
|
||||||
|
|
Loading…
Reference in New Issue