Support for custom braille tables#16208
Conversation
Co-Authored-By: Leonard de Ruijter <leonardder@users.noreply.github.com>
Co-Authored-By: Leonard de Ruijter <leonardder@users.noreply.github.com>
…table history once squashed
… configuration in their manifest Re: nvaccess#10172 (review)
Co-authored-by: Sean Budd <seanbudd123@gmail.com>
Co-authored-by: Sean Budd <seanbudd123@gmail.com>
|
@seanbudd Any chance this can be reviewed any time soon? I might be unable to address review comments later this year. |
| - ``alt+upArrow`` is now mapped to ``dot2+dot3+dot7+space`` | ||
| - ``alt+downArrow`` is now mapped to ``dot5+dot6+dot7+space`` | ||
| - | ||
| - The fallback braille input table is now equal to the fallback output table, which is Unified English Braille Code grade 1. (#9863, @JulienCochuyt, @LeonarddeR) |
There was a problem hiding this comment.
changes here will have to be rebased when the 2024.3 change log is prepared
Co-authored-by: Sean Budd <seanbudd123@gmail.com>
|
The change log entry is now available for 2024.3 and PRs to master are unfrozen. |
|
Should now be done. Could you please have a quick look over the dev guide changes as well? |
seanbudd
left a comment
There was a problem hiding this comment.
Merge fixes look fine other than the formatting of this code block
| --- start --- | ||
| [brailleTables] | ||
| [[fr-bfu-tabmod-comp8.utb]] | ||
| displayName = French (unified) 8 dot computer braille - Addition | ||
| contracted = False | ||
| output = True | ||
| input = True | ||
|
|
||
| [[no-no-8dot.utb]] | ||
| displayName = Norwegian 8 dot computer braille - Replacement | ||
| contracted = False | ||
| output = True | ||
| input = True | ||
| --- end --- |
There was a problem hiding this comment.
This should use code formatting blocks with grave marks, rather than indentation
There was a problem hiding this comment.
I copied the style from other code blocks, like on line 267.
There was a problem hiding this comment.
Thanks, while it appears to render fine we probably want to convert these and remove the start/end lines
|
Should this change log entry be included? It looks like it was merged into 2019.3:
|
…16537) Fixes #16535 Fixup of #16208 Summary of the issue: #16208 introduced test tables SCons didn't want to copy to the test directory by default. I tried to fix that by binding testTable to the source target with env.Alias, but that's definitely the wrong way. Description of user facing changes Fixed build system. Description of development approach Added the test tables as a dependency to the liblouis python wrapper. This ensures that test tables will be there when the python wrapper is build.
Many thanks to @JulienCochuyt for the initial implementation
Link to issue number:
Fixes #3304.
Fixes #9863.
Supersedes PR #9864, #10172.
Addresses #505 (comment)
Summary of the issue:
In NVDA, there is no easy and reliable way for an add-on to provide a new braille table. For an experienced users wishing to do so there are two options:
Alter manually an existing table in
louis/tables.The new table still has its original name in the settings GUI.
This change is lost upon NVDA updates.
Set the absolute path to the table file in the configuration in lieu of the usual file name.
The settings GUI shows an empty entry for this one.
Forces to manually alter
nvda.ini.Forces to copy in the same directory the whole dependency chain of the new table plus
braille-patterns.cti. This is because liblouis default table resolver only looks for tables in a single directory, See Make it easier for add-ons to supply custom braille tables #5489 (comment)Description of how this pull request fixes the issue:
Add a new
brailleTablesoptional directory in both the user scratchpad directory and the add-on directory structure.Support reading tables metadata from an optional
brailleTablessection of the add-on manifest or from amanifest.inifile with the same format found in the root of the scratchpad directory, allowing a user to provide a display name and set output/input/contracted capabilities with no code.Implement a custom liblouis table resolver that resolves tables based on what is registered in the
brailleTablesmodule:brailleTablesdirectory or the built-in tables directoryEnforce the existing fallback mechanism to ensure there still is braille output if the configured table cannot be found e.g. because an add-on or the scratchpad directory was disabled. This now applies both to the main configuration and individual profiles and also covers braille input.
Note that if an add-on author wants a table to be listed in the GUI, he/she should always define the table in the manifest. Contrary to earlier incarnations of this pr, replacing a table in an add-on (i.e. when it has the same filename as a built-in table) without defining it in the manifest is no longer possible. Therefore it is also not possible to replace unlisted tables that are included by listed tables. For example, if you want to replace
spaces.utias included innl-comp8.utb, you weel need to both define and bundle a replacement ofnl-comp8.utbandspaces.utiin your add-on.Testing strategy:
From a source copy:
added a new table via an add-on
added a new table via the scratchpad directory
replaced an existing table via an add-on
replaced an existing table via the scratchpad directory
altered existing table meta-data via an add-on
altered existing table meta-data via the scratchpad directory
ensured proper fallback when the user selected a new table which was provided by a later disabled add-on
ensured proper fallback when the user selected a new table which was provided by a later removed add-on
ensured proper fallback when the user selected a new table which was provided by the later disabled scratchpad directory
Known issues with pull request:
None known.
Code Review Checklist: