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

Method portAdd

gui/qt/debugger.cpp:1164–1238  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1162}
1163
1164bool MainWindow::portAdd(uint16_t port, int mask, bool unset) {
1165 const int row = m_ports->rowCount();
1166 QString portStr;
1167 uint8_t data = 0;
1168
1169 if (unset) {
1170 portStr = DEBUG_UNSET_PORT;
1171 } else {
1172 portStr = int2hex(port, 4).toUpper();
1173 if (guiDebug) {
1174 data = port_peek_byte(port);
1175 }
1176 }
1177
1178 // return if port is already set
1179 for (int i = 0; i < row; i++) {
1180 if (m_ports->item(i, PORT_ADDR_COL)->text() == portStr) {
1181 if (portStr != DEBUG_UNSET_PORT) {
1182 return false;
1183 }
1184 }
1185 }
1186
1187 m_ports->setRowCount(row + 1);
1188 m_ports->blockSignals(true);
1189
1190 QToolButton *btnRemove = new QToolButton;
1191 btnRemove->setIcon(m_iconRemove);
1192
1193 QToolButton *btnRead = new QToolButton;
1194 btnRead->setIcon((mask & DBG_MASK_PORT_READ) ? m_iconCheck : m_iconCheckGray);
1195 btnRead->setCheckable(true);
1196 btnRead->setChecked(mask & DBG_MASK_PORT_READ);
1197
1198 QToolButton *btnWrite = new QToolButton;
1199 btnWrite->setIcon((mask & DBG_MASK_PORT_WRITE) ? m_iconCheck : m_iconCheckGray);
1200 btnWrite->setCheckable(true);
1201 btnWrite->setChecked(mask & DBG_MASK_PORT_WRITE);
1202
1203 QToolButton *btnFreeze = new QToolButton;
1204 btnFreeze->setIcon((mask & DBG_MASK_PORT_FREEZE) ? m_iconCheck : m_iconCheckGray);
1205 btnFreeze->setCheckable(true);
1206 btnFreeze->setChecked(mask & DBG_MASK_PORT_FREEZE);
1207
1208 QTableWidgetItem *itemAddr = new QTableWidgetItem(portStr);
1209 QTableWidgetItem *itemData = new QTableWidgetItem(int2hex(data, 2));
1210 QTableWidgetItem *itemRead = new QTableWidgetItem;
1211 QTableWidgetItem *itemWrite = new QTableWidgetItem;
1212 QTableWidgetItem *itemFreeze = new QTableWidgetItem;
1213 QTableWidgetItem *itemRemove = new QTableWidgetItem;
1214
1215 connect(btnRemove, &QToolButton::clicked, this, &MainWindow::portRemoveSelected);
1216 connect(btnRead, &QToolButton::clicked, [this, btnRead, itemRead](bool checked) { btnRead->setIcon(checked ? m_iconCheck : m_iconCheckGray); portModified(itemRead); });
1217 connect(btnWrite, &QToolButton::clicked, [this, btnWrite, itemWrite](bool checked) { btnWrite->setIcon(checked ? m_iconCheck : m_iconCheckGray); portModified(itemWrite); });
1218 connect(btnFreeze, &QToolButton::clicked, [this, btnFreeze, itemFreeze](bool checked) { btnFreeze->setIcon(checked ? m_iconCheck : m_iconCheckGray); portModified(itemFreeze); });
1219
1220 m_ports->setItem(row, PORT_ADDR_COL, itemAddr);
1221 m_ports->setItem(row, PORT_VALUE_COL, itemData);

Callers

nothing calls this directly

Calls 3

int2hexFunction · 0.85
port_peek_byteFunction · 0.85
rowCountMethod · 0.80

Tested by

no test coverage detected