Monday, July 16. 2007Collaborative Undo done rightTrackbacks
Trackback specific URI for this entry
No Trackbacks
Comments
Display comments as
(Linear | Threaded)
I can see how it would be difficult to implement the undo/redo functionality at the moment, but I still think its better than nothing... A lot of groups at my university uses Gobby to work on our report so we really appreciate your work. But some clumpsy jerk always accidentally hits the Ctrl+A and delete buttons (in that order), and several hours of work is deleted.
My vision of the undo/redo could be the "everyone decides implementation". Here every user decides if others may undo his actions. Everyone subscribed to a document will here have two undo buttons: one for his own history and one for the whole document. It seems like you all are talking about the whole document history log. I'm thinking 'why make it complecated?'. Practically I would like to undo my own mistakes only, and an implementation of that doesn't even have to look like an undo function for the system. I see in the source code that a history is already being kept of all keystrokes, so how about that Gobby just acts as if the user "entered the opposite" when he is really doing an undo? I would create some example code if it weren't because of my really rusty C++ skills.
I'm making it complicated because I want to make it correct, in all situations. I don't want to waste time finding a solution that works sometimes, and then people keep complaining that it doesn't in certain situations.
I don't know what you mean by "an implementation does not have to look like an undo function for the system". As soon as it undoes things, it's an Undo function. You cannot just "enter the opposite" because the operation to undo might have been issued in a completely different state of the document, since others might have edited it in the meanwhile. Yes, it's still possible to find that "opposite" for the current state, and that's basically what the adOPTed algorithm does. The implementation of this algorithm is already there, and Infinote is not far from being usable. I am going to blog about this when I find some more time. |
NavigationCalendar
QuicksearchCategories |
|||||||||||||||||||||||||||||||||||||||||||||||||