[script nvda] Re: [script-NVDA] Extension Conjugaison (implémentation de l'aide contextuelle)

  • From: yannick <philaos31@xxxxxxx>
  • To: scriptnvda@xxxxxxxxxxxxx
  • Date: Sat, 4 Jun 2022 10:43:48 +0200

bonjour je ne sais pas si Abdel est sur cette  nouvelle liste, mais bien entendu la question est ouverte à toutes et tous.

il s'agit de l'aide contextuelle.

selon wikipédia, le fait d'écrire un monkey patch consiste à injecter du code directement dans un autre programme.

D'après ce que je comprends,contrairement aux extensions rien n'est balisé, rien n'est prévu, sinon on n'aurait pas parlé de monkey patch .

Bien entendu  je remercie Abdel pour  les explications, mais je me pose une question :

l'utilisation par Abdel du terme monkey patch est elle destinée à toutes les versions de NVDA ou aux versions de NVDA qui n'ont pas l'aide contextuelle ?

merci !




Le 10/09/2021 à 08:53, Abdel a écrit :


Salut les amis,

Je vais essayer d'expliquer comment j'ai implémenté le monkey patch de la fonction "gui.contextHelp.showHelp".

Dans le module "__init__.py" de l'extension, à la ligne 31, j'ai sauvegardé la valeur par défaut de cette fonction.

Je l'ai introduite dans une condition, pour bien assuré la rétrocompatibilité avec les versions de NVDA antérieures à 2021.1, qui n'utilisent pas "gui.contextHelp" :

if hasattr (gui, 'contextHelp'): saveShowHelp = gui.contextHelp.showHelp


J'ai donc prévu d'utiliser l'aide contextuelle dans les 2 situations suivantes :

  * Lorsque l'utilisateur ouvre le dialogue de conjugaison en
    réalisant le raccourci-clavier "Contrôle + F5" ou en passant par
    les menus;
  * Lorsque l'utilisateur accède à la catégorie "Conjugaison" dans le
    panneau des paramètres.


Pour la seconde situation, l'implémentation était plus simple, il fallait juste ajouter l'attribut "helpId = 'conjugaisonSettings'" dans la sous-classe héritant de "gui.settingsDialogs.SettingPanel".

L'attribut "helpId" est déjà implémenté dans la classe mère dans "nvda-2021.1" et plus.

Cependant, il fallait prévoir le retour à la valeur initiale de la fonction "gui.contextHelp.showHelp" dans les autres situations !

Parmi ces situations :

  * Si l'utilisateur valide sur "OK" ou "Annuler" après avoir saisi un
    verbe dans la boîte de dialogue de choix de verbe à conjuguer;
    (L'implémentation est dans la fonction "callback" de la méthode
    "onConjugationDialog ").
  * Si l'utilisateur change de catégorie dans le panneau des
    paramètres. (L'implémentation est présente dans la fonction
    "event_gainFocus").



Bien entendu, j'aurais préféré ne pas recourir au "monkey patch", bien que je sais très bien que c'est une pratique autorisée.

Voili voilou, je vous souhaite une agréable fin de semaine.

Cordialement,
Abdel.

_._,_._,_
------------------------------------------------------------------------
Groups.io Links:

You receive all messages sent to this group.

View/Reply Online (#320) <https://groups.io/g/script-NVDA/message/320> | Reply To Group <mailto:script-NVDA@xxxxxxxxx?subject=Re:%20%3D%3FUTF-8%3FB%3FW3NjcmlwdC1OVkRBXSBFeHRlbnNpb24gQ29uanVnYWlzb24gKGltcGzDqW1lbnRhdGlvbiBkZSBsJ2FpZGUgY29udGV4dHVlbGxlKQ%3D%3D%3F%3D> | Reply To Sender <mailto:abdelkrim.bensaid@xxxxxxx?subject=Private:%20Re:%20%3D%3FUTF-8%3FB%3FW3NjcmlwdC1OVkRBXSBFeHRlbnNpb24gQ29uanVnYWlzb24gKGltcGzDqW1lbnRhdGlvbiBkZSBsJ2FpZGUgY29udGV4dHVlbGxlKQ%3D%3D%3F%3D> | Mute This Topic <https://groups.io/mt/85503991/5120334> | New Topic <https://groups.io/g/script-NVDA/post>
Your Subscription <https://groups.io/g/script-NVDA/editsub/5120334> | Contact Group Owner <mailto:script-NVDA+owner@xxxxxxxxx> | Unsubscribe <https://groups.io/g/script-NVDA/leave/9576903/5120334/583712717/xyzzy> [philaos31@xxxxxxx]

_._,_._,_

Other related posts:

  • » [script nvda] Re: [script-NVDA] Extension Conjugaison (implémentation de l'aide contextuelle) - yannick