(kt events.Event)
| 1617 | } |
| 1618 | |
| 1619 | func (lb *ListBase) keyInputEditable(kt events.Event) { |
| 1620 | lb.keyInputNav(kt) |
| 1621 | if kt.IsHandled() { |
| 1622 | return |
| 1623 | } |
| 1624 | idx := lb.SelectedIndex |
| 1625 | kf := keymap.Of(kt.KeyChord()) |
| 1626 | if DebugSettings.KeyEventTrace { |
| 1627 | slog.Info("ListBase KeyInput", "widget", lb, "keyFunction", kf) |
| 1628 | } |
| 1629 | switch kf { |
| 1630 | // case keymap.Delete: // too dangerous |
| 1631 | // sv.This.(Lister).SliceDeleteAt(sv.SelectedIndex) |
| 1632 | // sv.SelectMode = false |
| 1633 | // sv.SelectIndexEvent(idx, events.SelectOne) |
| 1634 | // kt.SetHandled() |
| 1635 | case keymap.Duplicate: |
| 1636 | nidx := lb.duplicate() |
| 1637 | lb.SelectMode = false |
| 1638 | if nidx >= 0 { |
| 1639 | lb.SelectIndexEvent(nidx, events.SelectOne) |
| 1640 | } |
| 1641 | kt.SetHandled() |
| 1642 | case keymap.Insert: |
| 1643 | lb.This.(Lister).NewAt(idx) |
| 1644 | lb.SelectMode = false |
| 1645 | lb.SelectIndexEvent(idx+1, events.SelectOne) // todo: somehow nidx not working |
| 1646 | kt.SetHandled() |
| 1647 | case keymap.InsertAfter: |
| 1648 | lb.This.(Lister).NewAt(idx + 1) |
| 1649 | lb.SelectMode = false |
| 1650 | lb.SelectIndexEvent(idx+1, events.SelectOne) |
| 1651 | kt.SetHandled() |
| 1652 | case keymap.Copy: |
| 1653 | lb.copyIndexes(true) |
| 1654 | lb.SelectMode = false |
| 1655 | lb.SelectIndexEvent(idx, events.SelectOne) |
| 1656 | kt.SetHandled() |
| 1657 | case keymap.Cut: |
| 1658 | lb.cutIndexes() |
| 1659 | lb.SelectMode = false |
| 1660 | kt.SetHandled() |
| 1661 | case keymap.Paste: |
| 1662 | lb.pasteIndex(lb.SelectedIndex) |
| 1663 | lb.SelectMode = false |
| 1664 | kt.SetHandled() |
| 1665 | } |
| 1666 | } |
| 1667 | |
| 1668 | func (lb *ListBase) keyInputReadOnly(kt events.Event) { |
| 1669 | if lb.ReadOnlyMultiSelect { |
no test coverage detected