Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge alpha into beta for 2021.1 #12391

Merged
merged 192 commits into from
May 14, 2021
Merged

Merge alpha into beta for 2021.1 #12391

merged 192 commits into from
May 14, 2021

Conversation

seanbudd
Copy link
Member

@seanbudd seanbudd commented May 10, 2021

This must be a merge commit (not squash merge)

Currently blocked by:

  • A further review of changes.t2t, including fixing some formatting

This must be a merge commit (not squash merge)

feerrenrut and others added 30 commits December 8, 2020 10:47
Branch for release 2020.4 PR #11910
… (PR #9949)

Fixes #9943

Explain not to provide inline docstring when no `__doc__` attribute and using the legacy script construct (#9943)
Merge remote-tracking branch 'origin/beta'
Including:
- Update translations.
- Update liblouis to 3.16.1 (PR #11888)
- Fix deadlock between nvWave stop and feed (PR #11886)
- Detect Humanware Brailliant BI 40X and 20X via both USB and Bluetooth (PR #11819)
* Update Espeak to commit 82d5b7b04

Commit: "Ported voices from NVSpeechPlayer to espeak variants."
Full sha: 82d5b7b04488412845101851f36da6953cac4378F

* Update build process for Espeak
- Split build environment settings for internal and 3rd party code.
- Specifically don't enable warning level 3 for third party code builds.
- Use 3rd party build config for Espeak and Libluis
- centralize preprocessor macros
Refactor LiveText to use diff-match-patch via IPC with another process

Changes diffing functions to operate at the string rather than line level.
Adds diff-match-patch (DMP) as an optional diffing algorithm for LiveText objects.
It is anticipated that DMP will become the default in a future NVDA release pending positive user testing.

Unlike #11500, this PR does not import or dynamically link to DMP due to licensing issues.
Instead, a Python application is run in another process that calls the DMP extension, and communicates over standard IO.

Co-authored-by: Michael Curran <michaelDCurran@users.noreply.github.com>
Co-authored-by: Reef Turner <feerrenrut@users.noreply.github.com>
- Translation updates
- Fix for NVwave issue: #11968
…) when obtaining eSpeak NG version string (#11975)

* Synth drivers/eSpeak NG internal: update copyright header

* Synth drivers/eSpeak NG internal: passin NULL (None) when obtaining version info.

Python 3.8: without passing in a path string, access violation is thrown, which can cause NVDA executable to hang when trying to obtain eSpeak NG version string. Therefore pass in NULL (None) because what NVDA is interested in is synthesizer version.

* Synth drivers/eSpeak NG internal: address review comments.

Comment from Lukasz Golonka: remove file name from copyright header, use bytes.decode to transform eSpeak NG version string from bytes to Unicode.
…active in sleep mode. (#11979)

* Script decorator: Allow to set `allowInSleepMode` for a decorated script.

* Also take this oportunity to use type hints for script decorator parameters

* Unit test for allowInSleepMode

* Mention `allowInSleepMode` in script decorator's docstring

* Lint fixes

* Update developer guide

* Update what's new

Co-authored-by: Michael Curran <mick@nvaccess.org>
…ing dev docs build with Sphinx to succeed (#11972)

* Dev docs/config: point globalVars.appDir to source directory when building source code dev docs. re #11971.

Before building dev docs with Sphinx, config module is imported without NVDA knowing where the app dir is i.e. globalVars.appDir is undefined. Therefore tell Sphinx that globalVars.appDir is source directory so Sphinx can build source code documentation.

* Dev docs/Sphinx config: update copyright header

* Dev docs/Sphinx config: address review comments.

Reviewed by Lukasz Golonka: move globalvars.appDir definition, along with removing duplicate globalVars import statement.
… source code docs locally (#11973)

* Sphinx: remove version requirement (2.2.2).

NVDA docs can be built using more recent Sphinx releases such as 3.4.1. Therefore remove checking for Sphinx 2.2.2 in dev docs requirements.

* Readme: replace Epydoc with Sphinx, and remove dev docs limitation statement.

Replace Epydoc with Sphinx. As a result, remove the Python 3 source dev docs limitation statement, as Sphinx will now build NVDA dev docs.

* Readme: document how to build source code docs with 'scons devDocs'.

* Readme: output/DevDocs -> output/NVDA for source code documentation.

* Dev docs/Sphinx: specify Sphinx 3.4.1 (December 2020 release).

Comment from Lukasz Golonka: specify Sphinx==3.4.1 to align with readme.
* Symbols: test regex group references through the engine

This adds a test for regex group reference replacement that goes through
the complete speech symbol processor, using the French locale.

* Fix test content
* Update nvda_dmp.

* Add flush calls for completeness.
* Don't use UnidentifiedEdit for windows with empty windowText

Fix-up of #8165

* Update what's new

Co-authored-by: Michael Curran <mick@nvaccess.org>
* Global commands: convert basic commands to use script decorator. Re #11964.

The following commands were edited to use scriptHandler.script decorator: NVDA+N (show NVDA menu), NVDA+1 (toggle input help), NVDA+Q (quit NVDA), NVDA+F2 (pass next key through), NVDA+Shift+S/Z (toggle sleep mode), as well as unassigned restart NVDA command. For sleep mode toggle command, allow sleep mode flag is kept, and for NVDA menu and sleep mode toggle commands, gestures tuple is used (gestures order: keyboard (desktop and laptop), braille (including braille input and emulated keys), touch).

* Global commands: convert system status scripts to use script decorator. Re #11964.

Convert the following scripts: NVDA+F12 (time and date), NVDA+C (clipboard data announcement), NVDA+Shift+B (battery status).

* Global commands: convert system focus and caret scripts to use script decorator. Re #11964.

Convert the following commands: NVDA+up arrow/L (read current line), NVDA+Tab (current focus), NVDA+End/Shift+End (read status line), NVDA+down arrow/A (say all), NVDA+Shift+up arrow/Shift+S (say selection), NVDA+T (say title), NVDA+B (read foreground window).

* Global commands: convert object navigation scripts to use script decorator. Re #11964.

Converted object navigation scripts: NVDA+Numpad 5/4/6/8/2, NVDA+Shift+O/right/left/up/down arrows, object touch mode flicks (announce current object/move to next/previous/parent/first child) and friends.

* Global commands: convert review cursor commands to script decorator. Re #11964.

Convert review cursor commands: Shift+Numpad 7/9, Control+NvDA+Home/End on laptop layout (top/bottom), Numpad 7/8/9 (previous/current/next line)m Numpad 4/5/6 (previous/current/next word), Numpad 1/2/3 (previous/current/next character), Shift+Numpad 1/3 (start/end of line) and touch equivalents in text mode, along with review mark/copy commands.

* Global commands: convert mouse and browse mode scripts to use script decorator. Re #11964.

Convert the following commands: left/right mouse click/lock, move navigator object to mouse and mouse to navigator object, focus/browse mode toggle, parent tree interceptor.

* Global commands: convert config dialogs/panels commands to use script decorator. Re #11964.

Convert settings dialogs/panels opener commands to use script decorator, including ones iwthout a set gesture such as dictionary dialogs and review cursor panel.

* Global commands: convert config management scripts to use script decorator. Re #11964.

Convert the following configuration management scripts: Control+NVDA+C (save configuration), Control+NVDA+R (revert/reset configuration), Control+NVDA+P (open config profiles dialog), and an unassigned command to toggle profile triggers.

* Global commands: convert settings scripts to use script decorator. Re #11964.

Convert various settings scripts to use script decorator, including NVDA+2 (toggle speak typed characters), NVDA+U (probress bar output) and others.

* Global commands: convert synth settings ring scripts to use script decorator. Re #11964.

Convert synth settings ring scripts: Control+NVDA+arrows/Control+NVDA+Shift+arrows (next/previous setting, increase/decrease current setting).

* Global commands: convert document formatting settings scripts to use script decorator. Re #11964.

Convert document formatting scripts to use script decorator, all of them unassigned.

* Global commands: convert unassigned settings scripts to script decorator. Re #11964.

Convert unassigned settings scripts such as braille focus presentation, change braille cursor/shape, mouse text resolution, all unassigned.

* Global commands: convert tools scripts to use script decorator. Re #11964.

Convert tools scripts to script decorator, including app module info, UWP OCR, speech viewer, and others, some of them with gestures unassigned.

* Global commands: convert braille display scripts to use script decorator. Re 311964.

Converted braille input and outpu scripts (except keyboard emulation) to use script decorator (tested with a HumanWare BrailleNote Touch Plus).

* Global commands: convert touch gestures to use script decorator. Re #11964.

Convert touch-specific scripts to use script decorator, including touch hover, right click, and touch mode toggle.

* Global commands: convert keyboard emulation scripts to use script decorator. Re #11964.

Convert keyboard emulation scripts for Control, Alt, Windows, Shift, and NVDA keys to use script decorator.

* Global commands: rearrange bypassInputHelp and remove commas from ends of function argument definitions. Re #11964.

* Global commands: lint (Flake8 E203, E251)

* Global commands: lint (Flake8 E501)

* Global commands: fix spelling - 'wil' -> 'will' in speech mode command description.

* Global commands: scriptHandler.script -> script

* Global commands: remove gestures map, replaced by script decorator. Re #11964.

Replace gestures map found in global commands with script decorator.

* Global commands: update copyright year

* Global commands: use allowInSleepMode flag for sleep mode toggle script. Re #11964.
…rom Outlook message (#11925)

* When writing an e-mail in MS Outlook, pressing shift+tab keystroke to go back to the e-mail's headers or attachments should not announce a distance anymore.

* Fixed linting.

* Update what's new

Co-authored-by: Michael Curran <mick@nvaccess.org>
* Prevent running Windows 10 OCR if screen curtain is enabled.

* Update what's new

Co-authored-by: Michael Curran <mick@nvaccess.org>
#11936)

* Python Console: Fix handling of the tab key in the input pane (#11532)

 * Support indenting with tabs when editing a non-empty input line
 * Support tab-completion in the middle of an input line

* Python Console: Tab-completion: Handle selection

 * Consider selection start rather than cursor position (different if selection is anchored at start)
 * Replace selection upon successful completion
* Remove  compatibility  wrappers around `hasUiAccess` and `execElevated` introduced in #10493 from the config module

* Remove deprecated `getConfigDirs` from the config module

* Add missing imports  from `typing` to the config module

* Remove deprecated `canStartOnSecureScreens` from the config module

* Update what's new

Co-authored-by: Michael Curran <mick@nvaccess.org>
* Added some mathematical symbols

* Addressed missing tab character and a missing level

* Added some more mathematical symbols and restructured for better overview

* Fixed some symols to match different languages (i.e. see issue #11502

* Addressed review actions and removed the ordinal symbols because they cause issues in many lating languages. Those ordinal symbols should be controlled by the synthesizers.

* Addressed review actions (removed the mathematical constants and the incremental symbol to avoid confusions and improved consistency in ortographics)
@seanbudd seanbudd marked this pull request as draft May 10, 2021 07:20
@josephsl
Copy link
Collaborator

josephsl commented May 10, 2021 via email

@AppVeyorBot
Copy link

See test results for failed build of commit 9b12cdb804

Merge Beta (and translations) into master
A changes item was accidentally added to the wrong release header in PR #11598

Description of how this pull request fixes the issue:
Move the changelog item to the correct release
@AppVeyorBot
Copy link

See test results for failed build of commit a26661dcb1

CyrilleB79 and others added 2 commits May 11, 2021 17:41
…tion is enabled (#11899)

Summary of the issue:
In MS Word/Outlook browse mode, layout tables (i.e. tables with no border) are skipped when using table quick navigation key (T and shift+T), even if "Include layout tables" options is enabled in Browse mode settings.

Description of how this pull request fixes the issue:
In NVDAObjects\window\winword, I have modified the TableWinWordCollectionQuicknavIterator filter method so that the iterator returns a table if borders are enabled or if layout tables should be included.

I have checked in nvdaHelper\remote\winword.cpp that the presence or the absence of a border was already the criterion that defines if a table is a layout table or not. (so nothing done in this file)

Co-authored-by: buddsean <sean@nvaccess.org>
The function header for sayAllHandler is incorrect, and the behaviour of cancelling sayAll speech changed in #12251
@codeofdusk
Copy link
Contributor

Can #12094 please be merged into 2021.1 as well? Thanks.

Summary of the issue:
Using shift to resume speech after using shift to pause speech does not resume speech.

This is because when isPaused is imported through speech\__init__.py it is does not reference the global variable used in speech.py

Description of how this pull request fixes the issue:
Removes the use of top level variables in speech.py in favour of a private dataclass to manage state, and an enum for certain modes. Constants (or rather, variables with names in all capitals) remain as is.
@seanbudd
Copy link
Member Author

Can #12094 please be merged into 2021.1 as well? Thanks.

It'll come in with another merge from master, there a few more fixes that need to get in.

LeonarddeR and others added 3 commits May 12, 2021 17:59
…n the underlying table has neither rows nor columns (#12360)

When creating a virtual buffer and NVDA encounters a table, it wil render the children of that table. It keeps a reference to the IAccessibleTable2 interface of the table until it has found a cell in that table. However, when a table contains no cells (i.e. when it has neither rows nor columns) and it encounters an inner table in that table, that inner table is ignored and table navigation does not work.

Description of how this pull request fixes the issue:
This pr ensures that when row and column count are 0, the IAccessibleTable2 reference isn't used when rendering children. Therefore, for every child, the logic that checks for IAccessibleTable2 will apply and issue #12359 no longer occurs.
As a bonus, I removed support for IAccessibleTable2 support. This support was left in the VBuf code to support older versions of Seamonkey. I verified that Seamonkey now uses a version of Gecko that also uses IAccessibleTable2.

Co-authored-by: buddsean <sean@nvaccess.org>
…isfy Linter and decrease likelihood of circular imports (#12367)

Summary of the issue:
Linter complains about various imports in IAccessibleHandler not being at the top of file. In the current situation moving them to the top causes errors about imports from not fully initialized module.

Description of how this pull request fixes the issue:
At first I thought this can be solved by not importing NVDAObjects.IAccessible in the api module which is unused there anyway. Unfortunately removing this import just delayed the error but NVDA still was unable to start. Therefore I've moved parts of IAccessibleHandler which are imported by various other files in this package to two new files:

types.py contains typing information for IAccessibleHandler
utils.py contains various utility functions mostly introduced in #11521

Co-authored-by: buddsean <sean@nvaccess.org>
the following error happens when exiting NVDA via NVDA+q exit dialog shows, then enter:

DEBUG - core._closeAllWindows (18:25:34.959) - MainThread (8636):
destroying main frame during exit process
ERROR - unhandled exception (18:25:34.959) - MainThread (8636):
Traceback (most recent call last):
  File "C:\work\repo\nvda\7\.venv\lib\site-packages\wx\core.py", line 3407, in <lambda>
    lambda event: event.callable(*event.args, **event.kw) )
RuntimeError: wrapped C/C++ object of type ExitDialog has been deleted
Description of how this pull request fixes the issue:
Prevents ExitDialog from being destroyed twice
@LeonarddeR
Copy link
Collaborator

I assume #11912 and #12376 should be merged in first as well, at least the former.

Co-authored-by: Reef Turner <feerrenrut@users.noreply.github.com>
Co-authored-by: Bill Dengler <codeofdusk@gmail.com>
@AppVeyorBot
Copy link

See test results for failed build of commit bde45f103e

@feerrenrut
Copy link
Contributor

This PR is primarily to let translators get started. We'll do a follow up alpha to beta merges as necessary. We won't do a beta release until we are confident with the changes.

@AppVeyorBot
Copy link

See test results for failed build of commit 21d5853be4

If a test has a name with special characters, and the test fails, a screenshot is not generated

Example: "Robot.chromeTests.Table in style display: table"

Also teardown failed:
OSError: Bad path: nvdaTestRunLogs\Robot.chromeTests-Table_in_style_display:_table-failedTest.png

Description of how this pull request fixes the issue:
replace special characters using url-style escaping from the screenshot filename
### Summary of the issue:

- various code-fences are not formatted properly
- inconsistent indentation on lists
- inconsistent formatting of messages

### Description of how this pull request fixes the issue:

- enforce `- Example changelog message. (#123[, #321])` format using the following regex to highlight conforming messages `(.*\. \((#[0-9]+(, )?)+\)$|  -.*)`
- replace all usages of single ` with ``
- standarise indentation for second level lists to use the recommend two spaces
@feerrenrut
Copy link
Contributor

Let's not block this by the milestone issues. I want to allow translators to get started on the translations. This will make the first beta more widely relevant. We can do a follow up alpha -> beta merge once those milestone issues are fixed.

@AppVeyorBot
Copy link

See test results for failed build of commit 249f9425b5

@XLTechie pointed out several typos and minor fixes in #12412. Some of these fixes we would like to add quickly so translators can start on them.
@seanbudd seanbudd marked this pull request as ready for review May 14, 2021 03:54
Copy link
Contributor

@feerrenrut feerrenrut left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep, lets go ahead and merge this.

@feerrenrut feerrenrut merged commit c1ddd3f into beta May 14, 2021
@feerrenrut feerrenrut deleted the branchFor2021.1 branch May 14, 2021 04:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.