diff --git a/src/drivers/Qt/ConsoleDebugger.cpp b/src/drivers/Qt/ConsoleDebugger.cpp index 712b0508..449c17d9 100644 --- a/src/drivers/Qt/ConsoleDebugger.cpp +++ b/src/drivers/Qt/ConsoleDebugger.cpp @@ -365,6 +365,8 @@ ConsoleDebugger::ConsoleDebugger(QWidget *parent) selBmAddr = new QLineEdit(); selBmAddrVal = 0; + connect( selBmAddr, SIGNAL(textChanged(const QString &)), this, SLOT(selBmAddrChanged(const QString &))); + bmTree->setColumnCount(2); item = new QTreeWidgetItem(); @@ -382,6 +384,9 @@ ConsoleDebugger::ConsoleDebugger(QWidget *parent) connect( bmTree, SIGNAL(itemClicked(QTreeWidgetItem*, int)), this, SLOT(bmItemClicked( QTreeWidgetItem*, int)) ); + connect( bmTree, SIGNAL(itemDoubleClicked(QTreeWidgetItem*, int)), + this, SLOT(bmItemDoubleClicked( QTreeWidgetItem*, int)) ); + vbox->addWidget( selBmAddr ); button = new QPushButton( tr("Add") ); @@ -563,12 +568,33 @@ void ConsoleDebugger::bpItemClicked( QTreeWidgetItem *item, int column) //---------------------------------------------------------------------------- void ConsoleDebugger::bmItemClicked( QTreeWidgetItem *item, int column) { - int row = bmTree->indexOfTopLevelItem(item); + //int row = bmTree->indexOfTopLevelItem(item); - printf("Row: %i Column: %i \n", row, column ); + //printf("Row: %i Column: %i \n", row, column ); } //---------------------------------------------------------------------------- +void ConsoleDebugger::bmItemDoubleClicked( QTreeWidgetItem *item, int column) +{ + int addr, line; + //int row = bmTree->indexOfTopLevelItem(item); + + //printf("Row: %i Column: %i \n", row, column ); + + addr = strtol( item->text(0).toStdString().c_str(), NULL, 16 ); + + line = asmView->getAsmLineFromAddr( addr ); + + asmView->setLine( line ); +} +//---------------------------------------------------------------------------- +void ConsoleDebugger::selBmAddrChanged(const QString &txt) +{ + selBmAddrVal = strtol( txt.toStdString().c_str(), NULL, 16 ); + + //printf("selBmAddrVal = %04X\n", selBmAddrVal ); +} +//---------------------------------------------------------------------------- void ConsoleDebugger::openBpEditWindow( int editIdx, watchpointinfo *wp ) { int ret; diff --git a/src/drivers/Qt/ConsoleDebugger.h b/src/drivers/Qt/ConsoleDebugger.h index fff2cdef..03c73cdd 100644 --- a/src/drivers/Qt/ConsoleDebugger.h +++ b/src/drivers/Qt/ConsoleDebugger.h @@ -266,8 +266,10 @@ class ConsoleDebugger : public QDialog void breakOnInstructionsCB( int value ); void bpItemClicked( QTreeWidgetItem *item, int column); void bmItemClicked( QTreeWidgetItem *item, int column); + void bmItemDoubleClicked( QTreeWidgetItem *item, int column); void cpuCycleThresChanged(const QString &txt); void instructionsThresChanged(const QString &txt); + void selBmAddrChanged(const QString &txt); };