Undo does not work in online projects after document contents are synchronized
In an online project, after document contents are synchronized with the server, you cannot undo edits that happened before the synchronization
The Undo/Redo command is logically at odds with online documents. Online documents in memoQ are similar to Google Docs: several people are editing the same content at the same time. In memoQ – unlike in Google Docs –, you don't see what everyone else is typing in real time. Changes are synchornized whenever you leave a segment (with Auto Save), or when you manually command memoQ to synchronize a document. Full document synchronization also happens when you modify or confirm several segments at a time, so it's not always manual.
Undoing an edit means that you are reverting a change you have made on your end. But you need to take two more things into account: First, in memoQ, your edits don't only change the segment in front of your eyes. When you confirm a translation, auto-propagation may also change identical segments that are dozens or hundreds of segments away; definitely not on your screen. Now imagine that, two or three segments later, synchronization downloads changes to your document that someone else has made: for example, another person editing one of the segments that your translations were auto-propagated previously. If you undo your own changes, memoQ will also attempt to undo the auto-propagation; but if that were undone, you would destroy someone else's change. And all of this happens in a part of the document that you don't even see on your screen.
When autosave is turned on, there are times when memoQ needs to synchronize more extensively (that is, more than the segment that you left). When this happens, a progress bar appears. This can be because you changed many segments at once; or because someone else just changed many segments; or because someone else joined or split segments. This last one is the trickiest: it redefines the very units of data in your document. How do you undo an edit to a segment that no longer exists because it was joined with its neighbor by someone else?
This combination is the reason why memoQ must clear the undo history whenever a more extensive synchronization happens. There is one way around this: turn off Auto Save (go to manual sync). After you do that, memoQ never synchronizes the document until you tell it to, and your undo history is never cleared automatically – until the next manual synchronization, of course.
In fact, Google Docs, definitely a kind of benchmark for simultaneous editing, also suffers from the same issues. We have created a short video to demonstrate this. Here's what happens: we edit a document in browser A; then we make changes in browser B; then go back to browser A, and use undo. That's a far cry from either intuitive or useful. And remember, in Google Docs, you just have a flat document and all the changes happen in front of your eyes. In memoQ, because of distant off-screen changes (auto-propagation), undo would create nonsense – and you wouldn't even realize it. Now that is a catastrophic situation that we want to avoid. When we designed how undo should work in online documents, we have taken all of this into account.