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

GUI/settings: introduce add-ons panel #8588

Closed
josephsl opened this issue Aug 3, 2018 · 14 comments
Closed

GUI/settings: introduce add-ons panel #8588

josephsl opened this issue Aug 3, 2018 · 14 comments

Comments

@josephsl
Copy link
Collaborator

josephsl commented Aug 3, 2018

Hi,

Background and rationale

There are two issues/pull request pairs that'll significantly change inner and outer workings of NVDA add-ons:

Of these two, the second issue is more significant, as it opens up possibilities where add-ons can be blacklisted based on incompatible versions and what not, with a chance for developers to override this.

Thus I propose adding a new settings panel called "Add-ons" that'll add the following options:

*Automatically check for add-on updates.

  • A checkable list of add-ons that should not be updated.
  • Allow certain add-ons to run even though they are blacklisted by NVDA.

Note: most of the items in the template aren't applicable.
Edit: Empty template deleted.

@nvdaes
Copy link
Contributor

nvdaes commented Aug 3, 2018

Imo, this should be implemented with a checkbox for each add-on in add-ons manager:

  1. Updates for NVDA and probably for add-ons don't need to be managed for different profiles, just for normal configuration.
  2. Add-ons help, and options like removing, info, etc. is found in add-ons manager, and may be better trying to keep all concerning add-ons in this place, for simplicity and even for easy of writing documentation.
    Cheers.

@jscholes

This comment has been minimized.

@josephsl

This comment has been minimized.

@jscholes

This comment has been minimized.

@LeonarddeR
Copy link
Collaborator

I tend to agree with @nvdaes.

note that NVDDA's settings dialog is now mostly limited to parameters that make use of NVDA's config storage system. From a technical perspective, it might make most sense to save add-on update parameters in de addon state instead.

@josephsl
Copy link
Collaborator Author

josephsl commented Aug 4, 2018 via email

@nvdaes
Copy link
Contributor

nvdaes commented Aug 4, 2018

I think that a button to configure updates for each add-on could be added to add-ons manager. It would open a dialog with check boxes to choose if updates should be searched automatically and to announce pending updates, the same as in NVDA but in add-ons manager, saving it in add-ons state.
Anyway, this requires working on server before.

@jscholes
Copy link

jscholes commented Aug 4, 2018

Agree with @nvdaes, this is generally how the UI for add-on update management is handled in other software e.g. Kodi, foobar2000.

  1. Options specific to a particular add-on, such as whether it should be included in update checks, can be located within the add-ons manager.
  2. General options, such as whether NVDA should check for add-on updates in the first place, can be located in the main Settings dialog.

While all this work is going on, it might be worth thinking about the approach to add-on settings going forward and the UI they should expose to users:

  1. Should add-ons continue to place items in the Preferences and Tools menus? Or should they add a category to the Settings panel. If there are cases where one approach is more appropriate than the other, these should be documented somewhere so add-on authors can make the right decision.
  2. Should there be a button in the add-ons manager to launch the configuration UI for the selected add-on? If so, a mechanism will need to be implemented allowing add-ons to register a dialog or settings panel for this purpose. How should this be handled if an add-on has multiple dialogs (e.g. NVDA Remote)?

I know the above points are not strictly related to the addition of an add-on updates settings panel. However, within the scope of this and related issues, there exists the possibility of major user interface changes and consistency for users is key. If a bit of forward planning can avoid options having to be moved around between NVDA versions, the user experience will be all the better for it.

@DrSooom
Copy link

DrSooom commented Aug 4, 2018

In addition to #8514 I suggest the following:

  1. The period for checking available NVDA updates should be the same for add-ons as well.
  2. Add a checkbox in the General NVDA Settings window called "Also check for updates to NVDA add-ons" (or something like this).
  3. Add a button directly below this checkbox called "Exclusions...".
  4. This button will open a new window which contains the following:
  • [Text] Please check/select/enable/whatever all add-ons to exclude them from the automatically update check.
  • List of all installed add-ons
  • And every item has a checkbox
  • And the buttons "OK", "Cancel" and "Help"
  • The "Help" button will open the NVDA User Guide with an anchor parameter
  1. The value if an add-on is compatible or not, should appear only in the Add-ons Manager window.
  2. NVDA should check the compatibility after updating NVDA itself and during the installation of an add-on.
  3. At the moment I don't see any reason why it should be useful to provide a list of possible incompatible add-ons via the GUI on which the end user can put them from the list. Putting them from the incompatibility list is already done by uninstalling an add-on.
  4. Adding an complete new panel in the NVDA Settings for add-on updates only makes no sense to me as long as the Add-on Manager window still exists. In my opinion this two new items (checkbox and button" in the General NVDA Settings should be enough here. The rest has to be done in the Add-on Manager window.

@jscholes
Copy link

jscholes commented Aug 4, 2018

Add a button directly below this checkbox called "Exclusions...".

To me this isn't a great user experience. Excluding add-ons from update checks is not likely to be something a user does particularly often, and it will be applied on a per-add-on basis. Therefore the simplest and most sensible solution seems to be a check box next to each add-on in the add-ons manager which says "Include in add-on updates" or similar. For the users who need it, it will be in a logical place. For the users who don't, it won't attract attention, questions or accidental usage. An add-on update exclusion list can't really be considered a general setting IMHO.

@nvdaes
Copy link
Contributor

nvdaes commented Aug 4, 2018

jscholescommented an hour ago

Add a button directly below this checkbox called "Exclusions...".
To me this isn't a great user experience.

I agree: If check boxes are added to search updates for each add-on, add-ons not checked won't be updated.
For now I don't see the need for adding nothing regarding to this in General panel.

@josephsl
Copy link
Collaborator Author

josephsl commented Aug 4, 2018 via email

@nvdaes
Copy link
Contributor

nvdaes commented Aug 4, 2018

I agree with leonardder:

note that NVDDA's settings dialog is now mostly limited to parameters that make use of NVDA's config storage system. From a technical perspective, it might make most sense to save add-on update parameters in de addon state instead.

We should tend to get consistency and technical reasons regardless on other add-ons dialogs or implementations.

@josephsl
Copy link
Collaborator Author

Hi,

Implementation found in Ad-on Updater. Closing.

Thanks.

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

No branches or pull requests

5 participants