Bonjour Quentin,

Voici le bug numéro 1 du jour.
- J'essaie d'ouvrir un fichier comme d'habitude avec 6pad++ depuis 
l'explorateur (j'ai mis 6pad++ dans le menu contextuel Envoyer vers).
- 6pad++ s'ouvre ainsi que la console Python. Par contre, impossible de tabuler 
pour aller lire le problème dans la sortie python ou pour cliquer sur les 
boutons.
- Avec le curseur Jaws, je lis l'erreur qui est une erreur dans mon 6pad++.py.
- Puis, toujours en curseur Jaws, je clique sur le bouton Fermer.
- Jaws me dit alors que j'arrive dans la fenêtre principale de 6pad++ alpha- Je 
repasse en curseur PC mais impossible d'interagir avec 6pad++ (ex: Alt+F pour 
aller dans le menu fichier).
- Là, mon restant visuel me signale qu'il y a une boîte de dialogue devant 
6pad++ qui n'est pas activée alors que la fenêtre principale de 6pad++ l'est.
- Avec Alt+Tab, je tombe sur cette boîte de dialogue qui me dit "Accès refusé".
Le fichier était en fait un fichier sur lequel je n'avais pas le droit de 
lecture. Et l'erreur de mon 6pad++.py une erreur du fait que le fichier ne 
s'est pas ouvert (donc currPage = None)
Si tu veux faire le test, tu peux essayer sur le fichier 
C:\Users\mon_login\AppData\Local\Microsoft\Windows\UsrClass.dat. Ce n'est pas 
le même message d'erreur mais le principe est le même.

C'est à moi de corriger l'erreur de mon script 6pad++.py pour le rendre robuste.
Par contre, il faudrait d'abord que l'utilisateur ait validé les éventuels 
messages d'erreur avant d'ouvrir la console. Ou alors focaliser la boîte de 
dialogue d'erreur de sorte à ce qu'elle apparaisse au dessus de la console et 
qu'elle prenne le focus (boîte modale ?).

Plus généralement, ça me fait poser la question de l'ordre des actions faites 
par 6pad++ à son ouverture : ouverture du fichier passé en paramètre, ouverture 
de l'entrée standard, chargement des extensions, chargement du fichier 
6pad++.py, etc. Une petite liste ordonnée dans la doc de 6pad++ serait la 
bienvenue (une fois que cet ordre sera confirmé).

Enfin maintenant que je repense aux entrée et sortie standard, il ne me semble 
pas que tu m'aies répondu sur un exemple de cas d'utilisation de la sortie 
standard. Tu avais parlé de ligne de commande de type : commande1 | 6pad++ | 
commande2. Mais quel serait l'exemple pour commande1 et commande2 ?

Merci.
Bonne soirée.

Cyrille



-----Message d'origine-----
De : progliste-ow...@ml.free.fr [mailto:progliste-ow...@ml.free.fr] De la part 
de QuentinC
Envoyé : jeudi 4 juin 2015 09:48
À : progliste@ml.free.fr
Objet : [progliste] Re: 6Pad++ de juin

Réponses groupées pour JF et Cyril.

 > 1. On a un find, on a un replace mais de nature différente: il 
pourrait y avoir besoin d'un replace qui accepte les expressions 
régulières... A ce propos tiens, j'ai cru voir que tu étais passé des 
PCRE à un Boost quelque chose, celui qui m'avait posé quelques soucis: y 
a-t-il des différences de convention entre les deux?

IL y a quelques différences mais globalement ça reste à peu près pareil 
pour les opérations courantes.
Boost::regex ne supporte pas les conditions et les masques récursifs, 
mais ça n'a pas beaucoup d'incidence.

Pour les opérations avancées sur le texte, je te propose d'utiliser les 
fonctions natives de la classe str, et le module re.

 > 2. Je n'ai pas encore essayé choice; à ce stade, si j'ai bien suivi, 
je crois qu'on ne dispose pas de moyen de saisir une chaîne arbitraire, 
genre prompt...
 > Ca pourrait être utile. Si on pouvait préciser une valeur par défaut, 
ça serait le top.

J'ajouterai prompt alors.

3. Collage intelligent: est-ce que le cas de figure suivant arrive en 
contradiction avec le principe: [...]

IL faut encore tester tout ça. Ma combine de collage intelligent est 
encore très expérimentale.

 > 4. A quoi sert la touche Ctrl+Del? Est-elle assignable par 
addAccelerator? J'ai essayé, mais apparemment ça n'a pas exécuté la 
fonction que j'avais attachée, je n'ai pas poussé le test plus loin.

Rien n'est associé à Ctrl+Del. Par contre Ctrl+Maj+Del oui, c'est la 
fameuse fonction "crash express".

 > 1-      J’ouvre 6pad++. Je fais des modifs dans le document sans 
titre puis les annule avec Ctrl+Z. Je me retrouve donc avec un document 
vierge.
 > Ensuite, je vais dans l’explorateur et j’ouvre un fichier dans 
6pad++. Comme je suis en mode instance unique = 1, le fichier s’ouvre 
dans le même 6pad++.
Mais une fenêtre apparaît également pour me demander si je veux sauvegarder
les modifications dans le fichier sans titre qui était déjà ouvert dans 
6pad++.
 > C’est un détail, mais lorsque j’ouvre un fichier dans une appli qui 
possède des onglets, je ne m’attends pas à ce qu’on me demande de 
sauvegarder ou pas les modifications parce qu’un autre fichier se ferme. 
Je vois bien que c’est dû à un mécanisme de fermeture automatique d’un 
fichier sans titre lorsque celui-ci est vide. Pour moi il serait 
préférable de restreindre la fermeture automatique d’un fichier si 
celui-ci est vide et qu’il n’a jamais été modifié. Ca permet d’ailleurs 
de ne pas fermer sans confirmation un fichier dont on aurait supprimé 
tout le contenu par erreur (Ctrl+A puis Suppr).

Effectivement, c'est bien un petit bug. IL faut effectivement que 
j'ajoute une vérification de modification avant de fermer un onglet vide.

 > 2-      Dans la console python, lorsqu’on remonte l’historique des 
commandes précédantes avec flèche haut, le curseur se positionne juste 
avant le dernier caractère au lieu de se positionner à la fin de la 
ligne. J’imagine que c’est un bug.

En effet... bien joué.

 > 3-      On a les fonction messageBox, alert, confirm, warning et 
choice qui permettent d’avoir des petites interfaces sans devoir faire 
appel à des modules spécifiques (wxPython…). A cette liste serait-il 
possible d’ajouter inpu, une boîte de dialogue permettant à 
l’utilisateur d’entrer une chaîne de caractères. Bon après étude du 
sujet sur la MSDN, j’imagine que tu vas me répondre non parce que y a 
pas de fonction directe pour ça dans l’API Windows. Mais je tente mon 
coup quand-même ! Et si c’est non, que proposerais-tu pour cela ?

Si, je vais ajouter prompt.

 > Est-ce facile d’intégrer du WxPython aux scripts de 6pad++ par exemple ?

Aucune idée !


 > 4-      Je n’ai pas encore testé comme il faut la fonction find de 
l’API 6pad++. Mais je pose déjà la question, cette fonction sélectionne 
t-elle le texte trouvé comme la fonction du menu ? Si oui, je pense que 
ça risque d’être gênant pour faire des script qui utilisent cette 
fonction pour aller à la déclaration de fonction suivante/précédante, à 
la fin d’un bloc dans un langage tels que les scripts Jaws ou le VBS, 
etc. Finalement, plus j’y pense, plus je me dis que cette fonction find, 
éventuellement à renommer, devrait renvoyer un offset et peut-être aussi 
la longueur du texte trouvé.
Après, cela permet à chacun de positionner le curseur à l’offset 
retourné, voir de sélectionner le texte trouvé.


Effectivement, find se comporte comme les options correspondantes des menus.
Par contre, plutôt que de la modifier, je pense que si tu cherches plus, 
tu devrais te tourner vers les méthodes de str et le module re. Tu 
prends le texte et tu peux faire des 
ajouts/modifications/suppressions/remplacements à peu près comme tu veux.


Par exemple ceci fonctionne:
window.curPage[7:12] = "J'ai remplacé du texte"
Progliste :
Pour se d�sinscrire de la liste : 
mailto:progliste-requ...@ml.free.fr?subject=unsubscribe

Pour voir les archives de la liste :
http://www.mail-archive.com/progliste@ml.free.fr/       

Je vous rappelle que les pi�ces jointe sont activ�s leur taille est limit� � 2 
MO 

Pour acc�der aux fichiers de la liste
http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr
Ou en utilisant la nouvelle page de partage :
http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt
Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en priv�, je 
vous r�pondrez en priv�.
        
        


---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel 
antivirus Avast.
https://www.avast.com/antivirus
Progliste :
Pour se d�sinscrire de la liste : 
mailto:progliste-requ...@ml.free.fr?subject=unsubscribe

Pour voir les archives de la liste :
http://www.mail-archive.com/progliste@ml.free.fr/       

Je vous rappelle que les pi�ces jointe sont activ�s leur taille est limit� � 2 
MO 

Pour acc�der aux fichiers de la liste
http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr
Ou en utilisant la nouvelle page de partage :
http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt
Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en priv�, je 
vous r�pondrez en priv�.
        
        

Répondre à