TURS (Tree Undo Redo System) permet de gérer les annuler-refaire (ou précédent-suivant) sans perte de données avec l'utilisation d'un arbre.
Imaginons un sysème classique de précédent-suivant dans un navigateur web. Nous avons visité les sites webs suivants et nous sommes sur le dernier :
Site 1
Site 2
Site 3
Site 4 <-
On revient en arrière deux fois :
Site 1
Site 2 <-
Site 3
Site 4
Si l'on va sur un nouveau site 5, on va perdre les sites 3 et 4 :
Site 1
Site 2
Site 5 <-
Cependant, avec TURS, on utilise un arbre pour créer des branches (symbolisées par des points).
Site 1
Site 2
.
Site 3
Site 4
.
Site 5 <-
Ainsi les sites 3 et 4 sont conservés et depuis le site 2, il est possible d'accéder soit au site 5, soit aux sites 3 et 4.
Cette source peut aussi permettre, dans une certaine mesure, de s'initier aux templates en C++ ainsi qu'aux arbres (j'ai appris à les utiliser en programmant cette source).
Les fonctionnalités sont assez limitées (voir l'exemple fourni), mais il est possible d'adapter le code en modifiant directement les sources ou en héritant de la classe TURS.
Le code est commenté et documenté (la documentation est déjà générée et le fichier Doxyfile est fourni).
Attention, le zip et le code fournis sur cette page ne sont pas forcément à jour ! Pour voir les dernières sources, rendez-vous ici : https://bitbucket.org/mcc/dev/src/tip/TURS/