• Voila une autre journée de travail passée. J’ai donc continué à travailler sur le text undo. C’est donc composé de plein de petit undo à ajouter. J’ai commencé avec le remplacement de texte. Ça se résume en le regroupement d’une action de suppression puis une action d’ajout. Il suffisait donc de trouver ou ajouter ces quelques lignes.
    J’ai ensuite continué avec le undo/redo des textes d’exemple (lorem ipsum). Le principe est exactement le même que pour l’ajout de texte puisque le undo se fait bien sur le texte et non sur la génération d’un texte aléatoire. Encore une fois, il a suffit de trouver où est ce qu’il fallait ajouter cette action.
    Après, je me suis attaqué aux caractères spéciaux comme les tabulations ou même les guillemets et des choses comme ça. La prise en compte était encore à un autre endroit mais toujours le même principe.
    Enfin, je me suis mis à l’import de texte ou l’ajout de texte. Cette partie est plutôt compliquée car on passe par de multiples objets différents et par des plugins pour arriver finalement au même point que les autres : l’insertion de texte encore une fois. Pour l’import de texte, il fallait en plus prendre en compte la suppression du texte précédent. Malheureusement j’ai commencé en regardant la mauvaise action ce qui m’a fait perdre un peu de temps. J’ai d’ailleurs trouvé une fonction qui ne sert à rien du moins en apparence. C’est assez étrange quand on tombe sur des choses comme ça.
    Ensuite, l’effacement de frame puisqu’il existe un bouton pour cela. Ce n’est pas bien différent de la suppression de texte.
    Et pour finir, j’ai commencé avec les styles de caractère. Ici, ça c’est un peu corsé. Pour commencer facilement, j’ai regardé pour le changement de taille de police. Il est donc normal de tomber sur une fonction setfontsize(). J’ai donc pensé que la gestion du undo devrait se trouver dans cette fonction malheureusement, même grep ne me trouvait pas cette fonction. C’est plutôt déroutant au début. J’ai finis par comprendre que la classe utilisant cette fonction est créée en grande partie par des commandes préprocesseur pour automatiser la déclaration de fonction.
    Finalement, ce n’est donc pas ici qu’il faut ajouter le undo. Finalement, j’ai ajouté la modification de style dans une fonction de scribusdoc.cpp . En ajoutant cela, de très nombreuses fonctionnalités de undo/redo pour le texte ont été disponibles. Il est dommage que je ne puisse pas choisir le nom du undo de cette façon là. Du coup le nom est un peu général mais au moins de nombreux undo/redo sont disponibles. Je regarderai peut-être par la suite si on peut changer le nom mais ça reste un détail à mon avis. Finalement là ou je pensais passer au moins deux semaines, je devrais pouvoir avancer suffisamment déjà d’ici la fin de la semaine. On verra donc par la suite ce que le code me réserve ...