| 1494 | // ── Normal mode key handling ── |
| 1495 | |
| 1496 | bool RcxEditor::handleNormalKey(QKeyEvent* ke) { |
| 1497 | switch (ke->key()) { |
| 1498 | case Qt::Key_F2: |
| 1499 | return beginInlineEdit(EditTarget::Name); |
| 1500 | case Qt::Key_T: |
| 1501 | if (ke->modifiers() == Qt::NoModifier) |
| 1502 | return beginInlineEdit(EditTarget::Type); |
| 1503 | return false; |
| 1504 | case Qt::Key_Return: |
| 1505 | case Qt::Key_Enter: |
| 1506 | return beginInlineEdit(EditTarget::Value); |
| 1507 | case Qt::Key_Tab: { |
| 1508 | EditTarget order[] = {EditTarget::Name, EditTarget::Type, EditTarget::Value, |
| 1509 | EditTarget::ArrayElementType, EditTarget::ArrayElementCount, |
| 1510 | EditTarget::PointerTarget}; |
| 1511 | constexpr int N = 6; |
| 1512 | int start = 0; |
| 1513 | for (int i = 0; i < N; i++) |
| 1514 | if (order[i] == m_lastTabTarget) { start = (i + 1) % N; break; } |
| 1515 | for (int i = 0; i < N; i++) { |
| 1516 | EditTarget t = order[(start + i) % N]; |
| 1517 | if (beginInlineEdit(t)) { m_lastTabTarget = t; return true; } |
| 1518 | } |
| 1519 | return true; |
| 1520 | } |
| 1521 | default: |
| 1522 | return false; |
| 1523 | } |
| 1524 | } |
| 1525 | |
| 1526 | // ── Edit mode key handling ── |
| 1527 |
nothing calls this directly
no outgoing calls
no test coverage detected