← Back to team overview

openshot.developers team mailing list archive

Re: undo-redo system

 

The link below uses a stack/list, but keeps it in memory (using a python
list object) rather than writing to disk, so it is essentially the same
thing in principle.

What I do like the idea of is to write to disk a separate 'backup' of the
project file, perhaps using an autosave, so in the event of a crash or some
other event that corrupts the project file, there is the option to restore
back to one of the previous backup copies. But that's a different discussion
I guess.

But I must admit I'm no expert in things like this, I was just having a
browse around to see how other pygtk apps handle undo :-)

Cheers,
Andy.

2010/1/21 francesco fantoni <francesco@xxxxxxxxxxxxxxxxxxxx>

> I was considering an approach similar to what is used in saving project
> file:
> using cPickle to create a "state" of project object (written to a
> StringIO object), and inserted in a "history" stack/list.
> This way we could have a undo/redo system, but a history system as well,
> with the possibility to go back to any previous state of the working
> session, and besides it would use a rather simple trick, with parts of
> code already implemented.
> History stack size can be limited to a certain number of stages with
> user preferences system, or set to a reasonable hardcoded value.
> With some work on set_project_modified() function that can trigger
> project's state storing action...
> The doubts I have are about memory usage (not a great issue I suppose
> using binary protocol of cpickle and with a stack limited to e.g. 10
> passes) and speed (but cPickle and cStringIO are supposed to be rather
> fast)
> what do you think?
>
> francesco
>
>
> Il giorno gio, 21/01/2010 alle 09.56 +0000, Andy Finch ha scritto:
> > I haven't, I've been looking at other stuff. Although I have been
> > looking around recently at how undo is done in python and came across
> > this, which may help:
> >
> > http://www.nongnu.org/skencil/doc.html
> >
> > then follow the link to the undo documentation:
> >
> > http://www.nongnu.org/skencil/Doc/devguide-19.html#N1
> >
> > Cheers,
> > Andy.
> >
> > 2010/1/21 francesco fantoni <francesco@xxxxxxxxxxxxxxxxxxxx>
> >         just to know, has someone already started working on the
> >         undo/history
> >         thing?
> >
> >         best to all,
> >         francesco
> >         --
> >         architetto Francesco Fantoni
> >         <HVA - Hermanitos Verdes Architetti>
> >         l.go san giacomo, 38
> >         I-41100 modena (italia)
> >         tel.& fax. +39.059.217554
> >         skype:  hva_studio
> >         e.mail: francesco@xxxxxxxx
> >         web:    http://www.hv-a.com
> >
> >
> >         _______________________________________________
> >         Mailing list: https://launchpad.net/~openshot.developers<https://launchpad.net/%7Eopenshot.developers>
> >         Post to     : openshot.developers@xxxxxxxxxxxxxxxxxxx
> >         Unsubscribe : https://launchpad.net/~openshot.developers<https://launchpad.net/%7Eopenshot.developers>
> >         More help   : https://help.launchpad.net/ListHelp
> >
> --
> architetto Francesco Fantoni
> <HVA - Hermanitos Verdes Architetti>
> l.go san giacomo, 38
> I-41100 modena (italia)
> tel.& fax. +39.059.217554
> skype:  hva_studio
> e.mail: francesco@xxxxxxxx
> web:    http://www.hv-a.com
>
>

Follow ups

References