MCPcopy Create free account
hub / github.com/CE-Programming/CEmu / watchAdd

Method watchAdd

gui/qt/debugger.cpp:1485–1581  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1483}
1484
1485bool MainWindow::watchAdd(const QString& label, uint32_t low, uint32_t high, int mask, bool toggle, bool unset) {
1486 const int row = m_watchpoints->rowCount();
1487 QString lowStr;
1488 QString highStr;
1489 QString watchLen;
1490
1491 if (unset) {
1492 lowStr = DEBUG_UNSET_ADDR;
1493 highStr = DEBUG_UNSET_ADDR;
1494 } else {
1495 lowStr = int2hex((low &= 0xFFFFFF), 6).toUpper();
1496 highStr = int2hex((high &= 0xFFFFFF), 6).toUpper();
1497 }
1498
1499 // return if address is already set
1500 for (int i = 0; i < row; i++) {
1501 if (m_watchpoints->item(i, WATCH_LOW_COL)->text() == lowStr &&
1502 m_watchpoints->item(i, WATCH_HIGH_COL)->text() == highStr) {
1503 if (lowStr != DEBUG_UNSET_ADDR && highStr != DEBUG_UNSET_ADDR) {
1504 if (!m_useSoftCom) {
1505 m_watchpoints->selectRow(i);
1506 if (toggle) {
1507 watchRemoveRow(i);
1508 }
1509 } else {
1510 ui->lcd->setFocus();
1511 }
1512 return false;
1513 }
1514 }
1515 }
1516
1517 m_watchpoints->blockSignals(true);
1518
1519 QToolButton *button = new QToolButton();
1520 button->setIcon(m_iconRemove);
1521 connect(button, &QToolButton::clicked, this, &MainWindow::watchRemoveSelected);
1522
1523 QTableWidgetItem *itemLabel = new QTableWidgetItem(label);
1524 QTableWidgetItem *itemLow = new QTableWidgetItem(lowStr);
1525 QTableWidgetItem *itemHigh = new QTableWidgetItem(highStr);
1526 QTableWidgetItem *itemRead = new QTableWidgetItem;
1527 QTableWidgetItem *itemWrite = new QTableWidgetItem;
1528 QTableWidgetItem *itemRemove = new QTableWidgetItem;
1529
1530 QToolButton *btnRead = new QToolButton;
1531 btnRead->setIcon((mask & DBG_MASK_READ) ? m_iconCheck : m_iconCheckGray);
1532 btnRead->setCheckable(true);
1533 btnRead->setChecked((mask & DBG_MASK_READ) ? true : false);
1534
1535 QToolButton *btnWrite = new QToolButton;
1536 btnWrite->setIcon((mask & DBG_MASK_WRITE) ? m_iconCheck : m_iconCheckGray);
1537 btnWrite->setCheckable(true);
1538 btnWrite->setChecked((mask & DBG_MASK_WRITE) ? true : false);
1539
1540 connect(btnRead, &QToolButton::clicked, [this, btnRead, row](bool checked) {
1541 btnRead->setIcon(checked ? m_iconCheck : m_iconCheckGray);
1542 watchUpdateRow(row);

Callers

nothing calls this directly

Calls 2

int2hexFunction · 0.85
rowCountMethod · 0.80

Tested by

no test coverage detected