GraphiteEditor / GraphiteEditor/Graphite

Tracking Issue: Improve the NumberInput widget UX

Offen
#313 4 Kommentare 3 Reaktionen 1 zugewiesene Person Beansprucht von @Keavon Auf GitHub ansehen
Web
Vorherrschende Sprache
Rust
Sterne
27.2k
Forks
1.3k
Ø Merge
20 Std. 5 Min.
Gemergte PRs (30 T.)
57

Beschreibung

The NumberInput widget should support more common ways of modifying numerical widgets, namely:

- [x] Dragging left/right to adjust the value (#1468)
- [x] When dragging, Shift slows it down by adjusting the next order of magnitude of less precision and Ctrl snaps to increments of the current order of magnitude of precision (#1468)
- [x] When dragging, Escape and right click abort the change (#1468)
- [x] Add an integrated label to be shown on the left side, with the value on the right side, instead of the default value-centered display
- [x] #1471
- [x] Holding down the mouse button on the arrow to change it multiple times; this should probably work like key repeat, with an initial delay and a constant rate of repetition (#2276)
- [ ] While editing the number field, Up/Down arrows should increment/decrement by 1 and Shift+Up/Down by 10
- [ ] Hover mouse over it to copy and paste value
- [ ] Hover mouse over and hit Backspace to reset the value to its default
- [ ] Hover mouse over and hit - to negate the current value
- [ ] Hover mouse over it and hit Enter key to start editing (like clicking)
- [ ] Hover mouse over it and hit / to set the value to its reciprocal
- [ ] Hover mouse over it and Ctrl+scroll wheel to increment/decrement the value
- [ ] Detect and clean up floating point imprecision with numbers like `123.450000000000003` or `0.9999999999997` using a heuristic to convert those to `123.45` and `1.0`.
- [ ] Precision issues with values greater than JS's `Number.MAX_SAFE_INTEGER` (`9007199254740991`) which is still less than Rust's `u64`. Typing certain values like `9007199254740995` and `9007199254740997` both get turned into nearby values like `9007199254740995` for some but not all values. This means we need to use `bigint` more consistently throughout the entire pipeline in the frontend.
- [ ] Unit conversions in the input boxes, blocked on #586

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.