Salut JF,

En PJ, je t'ai concocté un petit correctif du module 6pad++.py, pas celui amélioré par Cyrille pour ses besoins personnels, mais le tout premier que je t'avais envoyé pour l'alternance entre origine et Alt origine.

Je t'ai ajouté une case à cocher dans le menu Format, "Touche suppression intelligente", qui a pour but, lorsqu'elle est cochée, ce qui est le cas par défaut, de ne supprimer que le "\r\n", lorsque le curseur est positionné sur une ligne vide.

Bien sûr, c'est juste un petit patch, en attendant que Quentin fasse la correction directement sur le 6pad++.

Il faudra que tu utilises la version beta 10.2 corrigée récemment par Quentin, pour la bonne reconnaissance de l'état coché/décoché des items de menus ajoutés dans le menu Format.

Voili voilou, je t'en souhaite bonne usage !

Bien amicalement,
Abdel.


Le 06/03/2017 à 13:41, jfco...@free.fr a écrit :
Hello la ML,

On a déjà évoqué le sujet mais voilà qu'il se présente sous un angle un peu différent aujourd'hui.

On est restés sur le fait que, lorsque l'on se trouve sur une ligne vide, et qu'on fait Suppr, 6Pad++ va effacer, non seulement cette ligne vide, mais toute autre ligne vide qui suivrait. On est restés sur le qualificatif de "hasard heureux" concernant cette "feature". Perso, ça ne me gêne guère. Ce qui me gêne bien davantage, c'est la suppression d'éventuelles tabulations se trouvant au début de la première ligne non blanche... Là pour le coup, je dirais bien que, si c'est un hasard, c'est un hasard plus malheureux... pour mes besoin personnels en tout cas. Qu'en pensez-vous?

Je suis toujours avec l'alpha 10.1 pour l'instant.

Merci,
J.-F.
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�.




import sixpad as sp
# Action de la case à cocher "Touche origine intelligente" dans le menu format
def onHomeKey():
        formatMenu.originalHomeKey.checked = not 
formatMenu.originalHomeKey.checked
# Action de la case à cocher "Touche suppression intelligente" dans le menu 
format
def onDeleteKey():
        formatMenu.originalDeleteKey.checked = not 
formatMenu.originalDeleteKey.checked

formatMenu = sp.window.menus.format

# Ajout de la case à cocher "Touche origine intelligente" dans le menu format
formatMenu.add(label="Touche &origine intelligente", action = onHomeKey, name = 
"originalHomeKey")

# Ajout de la case à cocher "Touche suppression intelligente" dans le menu 
format
formatMenu.add(label="Touche s&uppression intelligente", action = onDeleteKey, 
name = "originalDeleteKey")

# On coche ces 2 cases par défaut
formatMenu.originalHomeKey.checked = True
formatMenu.originalDeleteKey.checked = True

def onKeyDown(activePage, vk):
        #Décommentez les 2 lignes suivantes pour connaître le VKCode de 
n'importe quelle touche ou combinaison de touches.
        #sp.say(str(vk), True)
        #return True
        # On vérifie si la touche origine a bien été pressée
        if vk == 36:
                # On vérifie si la case touche origine intelligente est cochée
                if formatMenu.originalHomeKey.checked:
                        # On se positionne sur le premier caractère qui n'est 
pas une espace ou une tabulation
                        activePage.position = 
activePage.lineSafeStartOffset(activePage.curLine)
                else:
                        # On se positionne au début de la ligne sur n'importe 
quel caractère
                        activePage.position = 
activePage.lineStartOffset(activePage.curLine)
                return False
        # On vérifie si le raccourci-clavier Alt + origine a bien été pressée
        if vk == 2084:
                # On vérifie si la case touche origine intelligente est bien 
cochée
                if formatMenu.originalHomeKey.checked:
                        # On se positionne au début de la ligne sur n'importe 
quel caractère
                        activePage.position = 
activePage.lineStartOffset(activePage.curLine)
                        char = "tab" if activePage.text[activePage.position] == 
"\t" else "espace"
                        sp.say(char, True)
                else:
                        # On se positionne sur le premier caractère qui n'est 
pas une espace ou une tabulation
                        activePage.position = 
activePage.lineSafeStartOffset(activePage.curLine)
                        sp.say(activePage.text[activePage.position], True)
                return False
        # On vérifie si la touche suppression a bien été pressée
        if vk == 46:
                # On vérifie si la case touche suppression intelligente est 
bien cochée
                if formatMenu.originalDeleteKey.checked:
                        # On vérifie quand même qu'aucune sélection n'a été 
faite
                        if not activePage.selectedText:
                                # On vérifie si l'on est sur un caractère de 
retour chariot \r.
                                if activePage.text[activePage.position] == "\r":
                                        activePage.delete(activePage.position, 
activePage.position + 2)
                                        return False
        return True

def pageOpened(openedPage):
        openedPage.addEvent("keyDown", onKeyDown)

sp.window.addEvent("pageOpened", pageOpened)
sp.window.curPage.addEvent("keyDown", onKeyDown)

Répondre à