GraphiteEditor / GraphiteEditor/Graphite

Tracking Issue: Improve the NumberInput widget UX

Ouverte
#313 4 commentaires 3 réactions 1 personne assignée Réclamée par @Keavon Voir sur GitHub
Web
Langage dominant
Rust
Étoiles
27.2k
Forks
1.3k
Merge moyen
20 h 5 min
PR mergées (30 j)
57

Description

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

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.