Skip to content

preparing the new magnifier types#19915

Merged
seanbudd merged 16 commits intonvaccess:masterfrom
France-Travail:NewMagTypes
May 6, 2026
Merged

preparing the new magnifier types#19915
seanbudd merged 16 commits intonvaccess:masterfrom
France-Travail:NewMagTypes

Conversation

@Boumtchack
Copy link
Copy Markdown
Contributor

Link to issue number:

pre - #19473
parts of #19810

Summary of the issue:

needed to add logic for changing types before new types

Description of user facing changes:

Magnifier got a new cycle gesture to change to soon to be implemented new types: fixed/docked/lens

Description of developer facing changes:

added a placeholder for easier developement to be done.

Description of development approach:

as the new modes will inherite from the same logics, first making sure they can be added correctly to the actual code

Testing strategy:

Unit

Known issues with pull request:

Code Review Checklist:

  • Documentation:
    • Change log entry
    • User Documentation
    • Developer / Technical Documentation
    • Context sensitive help for GUI changes
  • Testing:
    • Unit tests
    • System (end to end) tests
    • Manual testing
  • UX of all users considered:
    • Speech
    • Braille
    • Low Vision
    • Different web browsers
    • Localization in other languages / culture than English
  • API is compatible with existing add-ons.
  • Security precautions taken.

@Boumtchack Boumtchack marked this pull request as ready for review April 7, 2026 14:54
@Boumtchack Boumtchack requested review from a team as code owners April 7, 2026 14:54
@Boumtchack Boumtchack marked this pull request as draft April 7, 2026 14:54
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Prepares NVDA’s magnifier subsystem for upcoming magnifier “types” (fullscreen/fixed/docked/lens) by adding type persistence, a cycle gesture, and placeholder implementations.

Changes:

  • Add magnifierType to config and wire initialization to create the appropriate magnifier instance.
  • Add a global command/gesture to cycle magnifier types and announce the selected type.
  • Introduce a PlaceholderMagnifier, expand MagnifierType enum, update docs and unit tests for the new lifecycle.

Reviewed changes

Copilot reviewed 12 out of 12 changed files in this pull request and generated 10 comments.

Show a summary per file
File Description
user_docs/en/userGuide.md Adds documentation for magnifier types and placeholder sections for upcoming modes.
tests/unit/test_magnifier/test_magnifier.py Updates unit test expectations around magnifier type initialization.
tests/unit/test_magnifier/test_fullscreenMagnifier.py Updates fullscreen tests to explicitly start the magnifier after constructor changes.
source/globalCommands.py Adds a new script/gesture to cycle magnifier type.
source/config/configSpec.py Adds magnifierType setting under [magnifier].
source/_magnifier/utils/types.py Adds CHANGE_MAGNIFIER_TYPE action and new MagnifierType members.
source/_magnifier/placeholderMagnifier.py Adds placeholder magnifier class for not-yet-implemented types.
source/_magnifier/magnifier.py Adjusts base class _magnifierType initialization behavior.
source/_magnifier/config.py Adds getters/setters for magnifierType.
source/_magnifier/commands.py Adds cycle-type command and updates start message to include type.
source/_magnifier/__init__.py Refactors module initialization to create magnifier instances by type and support runtime type changes.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread source/_magnifier/utils/types.py Outdated
Comment thread source/_magnifier/__init__.py Outdated
Comment thread source/_magnifier/commands.py Outdated
Comment thread source/_magnifier/commands.py Outdated
Comment thread source/_magnifier/placeholderMagnifier.py Outdated
Comment thread source/_magnifier/magnifier.py Outdated
Comment thread source/globalCommands.py Outdated
Comment thread user_docs/en/userGuide.md
Comment thread user_docs/en/userGuide.md Outdated
Comment thread source/_magnifier/commands.py Outdated
@seanbudd
Copy link
Copy Markdown
Member

seanbudd commented Apr 7, 2026

Let's focus on #19732 #19739 #19780 #19882 for now. Once most of these are merged, we can work on #19473 #19915 and #19913. Otherwise, there's too much conflicts between the different PRs. We want to ensure work which has already started gets completed before new work is started.

@seanbudd seanbudd reopened this Apr 20, 2026
@seanbudd
Copy link
Copy Markdown
Member

I've reopened this now that most of the other PRs are done or close to done

@Boumtchack Boumtchack marked this pull request as ready for review April 28, 2026 12:09
@seanbudd seanbudd requested review from seanbudd and removed request for SaschaCowley April 29, 2026 02:53
@seanbudd seanbudd added the merge-early Merge Early in a developer cycle label Apr 29, 2026
@seanbudd seanbudd added this to the 2026.3 milestone Apr 29, 2026
Comment thread source/config/configSpec.py Outdated
Comment thread source/_magnifier/magnifier.py Outdated
Comment thread user_docs/en/userGuide.md Outdated
Comment thread user_docs/en/userGuide.md Outdated
Comment thread user_docs/en/userGuide.md Outdated
Comment thread user_docs/en/userGuide.md Outdated
Comment thread user_docs/en/userGuide.md Outdated
Comment thread user_docs/en/userGuide.md Outdated
Comment thread user_docs/en/userGuide.md Outdated
Comment thread user_docs/en/userGuide.md Outdated
Comment thread source/globalCommands.py Outdated
Comment thread user_docs/en/userGuide.md Outdated
Comment thread source/_magnifier/magnifier.py Outdated
Comment thread user_docs/en/userGuide.md Outdated
Comment thread source/_magnifier/commands.py Outdated
Comment thread source/_magnifier/commands.py Outdated
Comment thread source/_magnifier/config.py Outdated
Comment thread source/_magnifier/fixedMagnifier.py
Comment thread source/_magnifier/dockedMagnifier.py
Comment thread source/_magnifier/lensMagnifier.py
@seanbudd seanbudd marked this pull request as draft May 4, 2026 04:04
@Boumtchack Boumtchack marked this pull request as ready for review May 4, 2026 14:27
@seanbudd seanbudd added the conceptApproved Similar 'triaged' for issues, PR accepted in theory, implementation needs review. label May 4, 2026
Comment thread source/_magnifier/fixedMagnifier.py Outdated
Comment thread source/_magnifier/lensMagnifier.py Outdated
Comment thread source/_magnifier/magnifier.py Outdated
@seanbudd seanbudd marked this pull request as draft May 5, 2026 02:37
@Boumtchack Boumtchack marked this pull request as ready for review May 5, 2026 13:52
Copy link
Copy Markdown
Member

@seanbudd seanbudd left a comment

Choose a reason for hiding this comment

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

Thanks @Boumtchack

@seanbudd seanbudd merged commit e1ea6a6 into nvaccess:master May 6, 2026
29 of 37 checks passed
@Boumtchack Boumtchack deleted the NewMagTypes branch May 6, 2026 07:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

conceptApproved Similar 'triaged' for issues, PR accepted in theory, implementation needs review. merge-early Merge Early in a developer cycle

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants