• C’est parti pour les nouvelles. Je n’ai pas fait d’article non pas parce que j’ai rien fais mais surtout par flemme. Ça prend toujours un peu de temps à écrire quand même :-).
    Comme précédemment, j’ai continué à travailler mercredi sur le texte undo. Après avoir traité le style de caractère, je me suis mis au style de paragraphe (en toute logique). Il m’a fallut un peu de temps pour trouver ou est ce qu’il fallait ajouter le code mais et surtout trouver tous les endroits ou il fallait le prendre en compte en fonction de ce qui est sélectionner (du texte ou une frame entiére). J’en ai donc profiter pour faire mieux fonctionner le undo/redo pour le style de caractére. Encore une fois, ça a mis en place de nombreux undo qui n’était pas visé à ce moment là. Ce qui m’a permit finalement d’avancer très vite dans la mise en place du undo/redo pour le text.
    Après avoir travailler sur l’ajout de style, il a donc fallut se mettre à la suppression de style. Il est assez perturbant de devoir traiter des fonctions qui font presque la même chose. Sans toutefois faire exactement pareil. Mais j’ai un peu de mal à voir la différentes puisque ce sont des fonctions non déclarer directement mais définie par des commande préprocesseur. Certe, ça permet d’avoir un code très court mais je trouve que ça nuis réellement à la lisibilité du code. Après c’est une question de point de vu.
    L’étape suivant a été pour les colonnes et les distances (entre les colonnes ou entre le texte et le bord de la frame). Globalement, ce n’était que des changement de variables donc dans ces cas, c’est le undo le plus basique qu’il soit. Pas beaucoup de difficulté. J’en ai aussi profiter pour supprimer une partie de code (il était exécuté ici, puis juste au dessous à travers une autre fonction). Et pour finir, le undo sur la longeur d’une tabulation. Il m’a pour cela suffit de changer la fonction utilisé pour en appeler une qui fait la même chose mais qui possède le undo en plus. Vu comme cela, on a l’impression qu’il reste plein de choses à faire mais j’ai testé les autres options que l’on peut utiliser sur les frames de textes (pendant une bonne heure pour tout essayer) et tous sont traité par le undo. C’est pas génial ? :-)

    Maintenant que le text undo est finis, je me suis mis à parcourir le bug tracker pour voir tous les bugs qui sont associé à mon sujet. C’est assez marrant de voir que certains sont donc maintenant résolu (dans ma version au moins). Le premier était une demande pour un undo sur le texte. Voilà qui est finit.
    La deuxième demande que j’ai vu était lors de la copy d’une page. Certains objet se retrouvaient dupliquer lors d’un undo/redo. En constatant cela, j’ai donc remarquer que ça venait d’une action de undo/redo ajouter à la pile de undo alors qu’elle ne le devrait pas. J’ai donc ajouter deux lignes pour indiquer qu’il ne fallait pas se souvenir des actions undo/redo dans une certaines partie du programme. Tout fonctionne correctement mais comme j’utilisais le widget : plan du document, pour voir si il y avait une duplication, j’ai remarqué qu’en ajoutant ces lignes, la mise à jour du widget ne se faisait plus lors du redo. Zut !!. J’ai beau avoir parcourue une bonne partie des fonction causant ce problème, je n’ai pas trouvé celle qui faisait la mise à jour nécessaire. J’ai donc opté pour appelé directement la fonction de mise à jour du widget en question. Il ne semble donc plus y avoir de problème pour moi en tout cas.
    Entre temps, on m’a indiqué sur IRC, un bug : Il n’y a pas d’avertissement lors de la suppression d’une page ou d’un gabarie. C’est donc un problème puisque le undo n’était apparemment pas disponible. Vu que tous les problèmes de création et de suppression sont maintenant réparé, c’est un bug que l’on peu oublier.
    Enfin, le dernier bug que j’ai traité est un undo inexistant : placer au dessous, placer au dessous, placer en haut ... Outre le fait que la fonction me semble très compliqué pour pas grand chose (il me semble même avoir vu des boucles for sur un list ou l’on a mis un seul élément dans tous les cas ...) J’ai finalement ajouter cette fonctionnalité en utilisant seulement la sélection. Toutes ces fonctions ayant le même fonctionnement, mettre en place une fonction c’est comme toutes les mettre en place.
    Aujourd’hui, je vais donc pouvoir continuer à parcourir le bug tracker pour ajouter toutes les fonctionnalités qui semble être les plus importantes pour les utilisateurs.