Implement bug 61340 (Add undo support for multi-tagging).
What this does is introduce a class that manages changes to PlaylistItems. A number of PlaylistItems can be altered before the underlying files are changed. Once the files are changed, a record is kept of the changes, which can then be used to undo what happened. Also, this class takes care of items that are to be renamed. All code paths that are capable of altering a tag have been changed to use this class. Note that the underlying code could probably use some cleaning up. e.g. adding a copy ctor to Tag instead of making a duplicateTag() function. ;-) I've tested this on a temp directory of copied music, so I'm pretty confident this all works and is safe. However, you may want to test on a backup first to make sure it works on your system too. =D Now the question is whether I should backport this or not. :-/ CCMAIL:email@example.com svn path=/trunk/kdemultimedia/juk/; revision=349640
Showing with 126 additions and 149 deletions