• L’avancement ces derniéres semaines a été un petit peu ralentie. En effet, je suis partie 3 jours à Genève pour rencontrer d’autres membres de l’équipe aux RMLL. Ça n’a pas été inutil bien au contraire puisque ça m’a permis de voir les gens avec qui je travail et de pouvoir discuter de toute cela directement ce qui est bien plus facile et plus agréable qu’IRC. Ça m’a permis de rencontrer également des utilisateurs de scribus pour voir ce dont ils ont besoin par exemple. On en a donc profiter pour décidé ce qui devrait être fait dans la deuxième partie de mes GSoC mais j’y reviendrais par la suite.
    Au niveau programmation. Tout d’abord, comme je l’avais prédit dans mon article d’il y a deux semaines, j’ai finis le travail sur le undo/redo pour le gradient de transparence. J’ai d’ailleurs remarqué que certains options sont ici parce qu’elles font partie du gradient pannel mais en réalité, elles sont inutils dans le cas de la transparence. C’est un petit peu perturbant.
    La deuxiéme a été pour la création des courbes de bézier. Dans ce cas l’astuce a été de déplacer la création du undo au bon endroit (une fois l’objet entièrement créer) puis de supprimer les undos inutiles créer par d’autres fonctions durant le processus de création.
    J’ai ensuite réctifié le undo pour l’ajustement de la frame de texte à la hauteur du texte et la duplication. Pour cela, il suffisait de regrouper plusieurs actions en une seul.
    Par la suite, je me uis mis au undo/redo pour l’action « Transform » dans le menu objet. Celui ci à d’étrange qu’il permet une rotation par exemple sans pour autant utilisé la fonction normal de rotation. Cela complique le code pour pas grand chose à mon avis mais bon, c’est un autre sujet.Ce undo m’a demandé un peu de temps puisque l’action de base utilise « adjustitemSize ». C’est une fonction utilisant beaucoup de sous fonction. Je ne me suis donc jamais risqué à créer un undo pour cette fonction puisque ceci s’avére en général pas nécessaire. Cependant, cela finis par me causé des problèmes de positionnement lors du undo/redo. Finalement, j’ai réussis à les contrer grace a la fonction moveTo en sauvegardant la position de départ et en applicant le bon déplacement à la fin du undo. Je me suis trompé un moment sans comprendre d’ou venait le problème en faisant le adjustitemsize après le déplacement ce qui me faisait un décalage que je ne comprennais pas. Maintenant tout fonctionne correctement.
    Toujours en continuant de chercher des problèmes de undo, je suis tomber sur des crash de scribus lorsque l’on utilisait le undo pour le changement de niveau des calques. En effet, il y avait une confusion entre deux identifiant différent que l’on donne aux calques dans le code. Leurs niveau et leur Id propre. Maintenant, je n’ai plus eu de crash à ce niveau là.
    Enfin, j’ai ajouté un undo correct pour le changement de code dans une render frame et pour le changement de page d’un pdf que l’on souhaite afficher dans une frame d’image. Il n’y a pas grand chose d’intéressant à ce niveau là puisque ce sont des undos tout ce qu’il y a de plus normal. Le plus dure est de trouvé le undo concerné et sa position comme d’habitude.
    Enfin, le undo pour l’édition des polygones, des arc et des spirals. Ceux ci ont de multiples options de nombre de coté, de longueur et d’angle et l’on ne pouvait pas revenir sur ces modifications. Maintenant cela est donc possible. Pendant ces modifications, j’ai eu de droles de suprises parce que certains undo n’utilise pas d’identifiant unique. Au moins, maintenant je fais plus attention à ce genre de problème que j’en rencontré une autre fois par la suite.
    J’ai également profité des RMLL et de diiscution avec pygmee pour empeché le undo lors de la création de certaines frames (comme les courbes) et pour améliorer la sélection après un undo ou un redo.
    Toutes les modifications cité précédement sont donc maintenant dans le trunk grace à MrB :-)
    Suite à une remarque de cezaryece, j’ai également corrigé un bug qui apparaissait lorsque l’on demandait d’effacer le contenue d’une frame de texte. Le bug se trouvait dans la gestion même du undo et je ne comprend pas vraiment pourquoi celui ci avait lieu...
    Un autre problème avait lieux lors du undo/redo de la conversion en contour. Le problème étant la création d’un trop grand nombre de undo alors que certains étaient inutil.
    En pour finir le travail sur le undo : l’option connect to path. Celle ci n’avait aucun undo et faisait partie d’un plugin. En effet, même dans ceux ci il faut traiter le undo. Ce qui n’est pas forcement facile puisque un plugin se veut séparer mais le undo est dans le code base.
    J’attend que ces derniers changement soit commité pour pouvoir demander à tout le monde de tester le undo pour me faire remaqué les endroit que j’ai oublié.
    Pendant ce temps, il a été décidé durant les RMLL de mettre en place un multiple import d’image. Il est donc possible (dans ma branch seulement pour le moment) de créer une frame d’image, sélectionner : importer une image puis de sélectionner plusieurs images. Si une seul image est sélectionné, il n’y a pas de changement par rapport à d’habitude. Mais il est aussi possible de sélectionner plusieurs images et dans ce cas, une liste des images apparait à coté du curseur. Il est possible de changer d’image avec tab ou shift + tab. Si on click sur une frame d’image, l’image sélectionné est importé dans la frame, sinon, il est possible de créer une frame directement avec l’image importé dedans. Je vous laisse donc jugé de l’efficacité de cette technique.
    Tant que je travaillais sur les images, j’ai ajouté la possibilité de remettre à zero une frame d’image qui n’a pas une image valide comme le reportait un bug de ale.
    Et pour finir, je me suis attelé à faire du panneau d’historique un panneau dockable. Donné le nom au panneau est un peu étrange mais cela fonctionne pour notre cas. Maintenant, je travail un peu sur le undo specifique et les bugs qui me sont assigné et je devrais bientôt commencer mon travail sur le panneau de recherche qui n’est vraiment pas très « user friendly ». A bientot pour plus de nouvelles