by trixmoto » Wed Jan 08, 2014 4:56 am
Undo in something like a word processor is pretty straight forward, as the actions you perform are simple and the scope is straight forward. However, it's rather more complicated in software as powerful as MM. For example, you might change some meta data in a track, which might trigger a script to change some other metadata, and the auto-organise might kick in to move the track, and this might trigger a script to move a buddy file along with it. If you then click "undo", how is the application supposed to respond? It could undo the metadata changes, but then what? Does it undo the auto-organise from before, or does it re-auto-organise based on the new metadata - theoretically both of these would put the file in the same place, but not always. And what about the changes made by the script? If it's firing based on the metadata change then it will fire again because of the undo, but this again is not undoing the previous action but doing a new action, and the application has no control over the script, so how's that going to work? Same with the other script moving the buddy file. This really is a massive can of worms!
Undo in something like a word processor is pretty straight forward, as the actions you perform are simple and the scope is straight forward. However, it's rather more complicated in software as powerful as MM. For example, you might change some meta data in a track, which might trigger a script to change some other metadata, and the auto-organise might kick in to move the track, and this might trigger a script to move a buddy file along with it. If you then click "undo", how is the application supposed to respond? It could undo the metadata changes, but then what? Does it undo the auto-organise from before, or does it re-auto-organise based on the new metadata - theoretically both of these would put the file in the same place, but not always. And what about the changes made by the script? If it's firing based on the metadata change then it will fire again because of the undo, but this again is not undoing the previous action but doing a new action, and the application has no control over the script, so how's that going to work? Same with the other script moving the buddy file. This really is a massive can of worms!