|
| 1 | +# v4.0.0.dev11 (2022-05-15) |
| 2 | + |
| 3 | +## Features |
| 4 | + |
| 5 | +### Core |
| 6 | + |
| 7 | +- Switch to `plover_stroke` for better steno handling: faster and stricter. (#1362, #1417, #1452) |
| 8 | +- New faster and improved RTF/CRE parser. (#1364, #1365) |
| 9 | +- Correctly handle formatting currency with thousands separator(s): `23,000.15{:retro_currency:$c}` => `$23,000.15`. (#1391) |
| 10 | +- Improve “English stenotype” system compatibility with RTF/CRE spec: support arbitrary placement of the number sign when parsing steno (e.g. `18#`, `#18`, and `1#8` are all valid and equivalent). (#1491) |
| 11 | +- Improve translation stage: cut down on unnecessary / duplicate dictionary lookups. (#1513) |
| 12 | + |
| 13 | +### User Interface |
| 14 | + |
| 15 | +- Improve accessibility: |
| 16 | + - Disable tab-key navigation in tables, so focusing a table does not lock global tab-key navigation to it. |
| 17 | + - Remove some container widgets, tweak focus rules to avoid extra unnecessary steps when using tab-key navigation (like selecting the dictionaries widget outer frame). |
| 18 | + - In form layouts, link each widget to its label (like each option in the configuration dialog). |
| 19 | + - Set the accessible name / description of focusable widgets. |
| 20 | + - Use lists for the dictionaries widget, suggestions widget, and the paper tape. (#1308, #1332, #1434, #1451) |
| 21 | +- Show a message when hiding to tray. (#1333) |
| 22 | +- Improved steno handling: |
| 23 | + - validate inputs in the "add translation" dialog and dictionary editor |
| 24 | + - sort on steno order in the dictionary editor, and signal invalid steno entries (#1362, #1501) |
| 25 | + |
| 26 | +### Linux |
| 27 | + |
| 28 | +- Improve D-Bus logger implementation. (#1496) |
| 29 | +- Add `WM_CLASS` property to windows (`WM_CLASS(STRING) = "plover", "Plover"`). (#1498) |
| 30 | + |
| 31 | +## Bugfixes |
| 32 | + |
| 33 | +### Core |
| 34 | + |
| 35 | +- New reworked RTF/CRE support: |
| 36 | + - correctly handle multi-lines mappings |
| 37 | + - detect syntax errors (with recovery) |
| 38 | + - use `\n\n` for new paragraphs (instead of non-undoable `{#Return}{#Returns}`) |
| 39 | + - similarly, use `\t` and `\n` for `\tab` and `\line` |
| 40 | + - correctly escape `{}\` on save |
| 41 | + - use custom ignored groups for Plover macros and metas |
| 42 | + - use groups to improve round-tripping affixes (so there's no ambiguity when parsing back, e.g. `{^in^}fix` -> `{\cxds in \cxds}fix` instead of `\cxds in\cxds fix`) (#1364, #1365) |
| 43 | +- Fixed a memory leak on reloading externally modified dictionaries. (#1375) |
| 44 | +- Do not discard existing filters on dictionaries reload. (#1388) |
| 45 | +- Fix engine's running state: make sure the translator' state is empty when enabling output for the first time. (#1504) |
| 46 | +- Fix exit handlers not getting always executed. (#1507) |
| 47 | +- Fix `StenoDictionaryCollection.longest_key` implementation: ignore disabled dictionaries! (#1512) |
| 48 | + |
| 49 | +### Dictionaries |
| 50 | + |
| 51 | +- Fix `KHR*PB` stroke to not be misinterpreted as a command. (#1463) |
| 52 | + |
| 53 | +### User Interface |
| 54 | + |
| 55 | +- Speedup dictionary editor startup (avoid duplicate sort). (#1351) |
| 56 | +- Updated Spanish translation. (#1420) |
| 57 | +- Updated French translation. (#1422) |
| 58 | +- Speedup suggestions widget implementation: should noticeably improve performance when there's a large scrollback. (#1481) |
| 59 | + |
| 60 | +### Windows |
| 61 | + |
| 62 | +- Drop launch option from installer's final page: avoid possible issues (e.g. permission errors with the controller's pipe) because Plover was run as admin. (#1495) |
| 63 | +- Fix notifications behavior: no persistent duplicated icons (one for each notification). (#1507, #1508) |
| 64 | + |
| 65 | +## API |
| 66 | + |
| 67 | +### Breaking Changes |
| 68 | + |
| 69 | +- The custom `test` command implementation provided by `plover_build_utils.setup.Test` has been removed: |
| 70 | + - support for it on setuptools' side has been deprecated since version 41.5.0 |
| 71 | + - the custom handling of arguments conflicts with the use of some pytest options (e.g. `-m MARKEXPR`) |
| 72 | + - the workaround for pytest cache handling is not necessary anymore (#1332) |
| 73 | +- The `steno` helpers (`Stroke` class, `normalize_stroke`, …) now raise a `ValueError` exception in case of invalid steno. (#1362, #1501) |
| 74 | +- The support for `StenoDictionary` and `StenoDictionaryCollection` longest key callbacks is gone, use the `longest_key` properties instead. (#1375) |
| 75 | + |
| 76 | + |
1 | 77 | # v4.0.0.dev10 (2021-06-19) |
2 | 78 |
|
3 | 79 | ## Features |
|
0 commit comments