- PaletteModel: QAbstractListModel ranking items via FuzzyRanker, with id/label/group/score and highlight-range roles plus a frecency bonus. Headless, unit-tested (10 cases). - PaletteWidget: frameless popup with a filter line and results list. Live company-style updates, top hit preselected, custom delegate bolds matched characters. Keyboard (Up/Down/PageUp/PageDown/Enter/Esc, focus kept in the filter) and mouse (click to activate). No chords. - Tighten FuzzyRanker typo tolerance: single adjacent transposition instead of deletion. Still recovers 'gti'->'git' but no longer false-matches 'ren' against 'Open File'. All tests green: fuzzyranker (14) + palettemodel (10). |
||
|---|---|---|
| .. | ||
| PLAN.md | ||