diff options
Diffstat (limited to 'qtmips_gui/memorytableview.cpp')
-rw-r--r-- | qtmips_gui/memorytableview.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/qtmips_gui/memorytableview.cpp b/qtmips_gui/memorytableview.cpp index 18e1bb1..e2386fa 100644 --- a/qtmips_gui/memorytableview.cpp +++ b/qtmips_gui/memorytableview.cpp @@ -167,7 +167,7 @@ void MemoryTableView::resizeEvent(QResizeEvent *event) { } } -void MemoryTableView:: go_to_address(std::uint32_t address) { +void MemoryTableView::go_to_address(std::uint32_t address) { MemoryModel *m = dynamic_cast<MemoryModel*>(model()); int row; if (m == nullptr) @@ -179,3 +179,15 @@ void MemoryTableView:: go_to_address(std::uint32_t address) { addr0_save_change(address); emit m->update_all(); } + +void MemoryTableView::focus_address(std::uint32_t address) { + int row; + MemoryModel *m = dynamic_cast<MemoryModel*>(model()); + if (m == nullptr) + return; + if (!m->get_row_for_address(row, address)) + go_to_address(address); + if (!m->get_row_for_address(row, address)) + return; + setCurrentIndex(m->index(row, 1)); +} |