Support for uncontracted and contracted braille input. #6449
Beyond the main code in brailleInput to support uncontracted/contracted input, this includes the following changes:
What's New entries:
In New Features:
Beyond the main code in brailleInput to support uncontracted/contracted input, this includes the following changes: * The list of braille tables has been moved out of the braille module into a separate brailleTables module. Braille tables are now added with a function rather than directly adding them to the data structure. Aside from being necessary in order to specify and check whether a table is contracted, this also makes the data about tables more extensible in future. * As the data structure for braille tables has now changed and is no longer ordered, this was a good opportunity to sort the list of tables alphabetically when displaying them to the user. * brailleInput is now notified when reverting config or changing config profiles. This is necessary because brailleInput now maintains some state when the input table is changed. * brailleInput is now initialised before braille at startup. This is because braille depends on brailleInput to get the currently untranslated input. * Dot7 and dot8 are now universally bound to braille input specific scripts for erase and enter. Any braille display drivers that had bindings for backspace/enter for braille input have been adjusted accordingly.
…e, typing two cells then pressing backspace. This occurred because cellsWithText was being updated even for the space at the end of a word. At this point, we're starting a new word, so cellsWithText needs to be empty.
@feerrenrut, I'm done with this batch of changes. I addressed your code review comments plus some other stuff noted below. Would you mind taking a look again?
@derekriemer reported a bug to me via IRC. STR:
This causes an exception. I've fixed this in 0b643d6.
… several pending upstream changes related to braille input.
* Always set noUndefinedDots so undefined dots (such as indicators that mean nothing by themselves) don't get translated to, for example, "\456/" for dots 4 5 6. * Set partialTrans when reporting contracted cells, thus avoiding the "zz" hack which was breaking French where z is actually a contraction.
Holding this back from the 2016.4 release, as there are some major outstanding issues:
…rs; we got rid of that in #6962. Make it possible to get the display text from a braille keyboard gesture identifier (as used in the Input Gestures dialog).