Bug 61340

Summary: Undo feature for tagging/multitagging
Product: [Applications] juk Reporter: Iván Sánchez Ortega <ivansanchez>
Component: generalAssignee: Scott Wheeler <wheeler>
Status: RESOLVED FIXED    
Severity: normal CC: me
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed In:

Description Iván Sánchez Ortega 2003-07-16 23:51:12 UTC
Version:            (using KDE 3.1.9)
Compiler:          gcc version 3.3.1 20030626 (Debian prerelease)
OS:          Linux (i686) release 2.4.21-1-k7-smp

It's quite self-explaining, but an undo feature for tagging (and multitagging) would be great. Specially when you realize that you've wiped out half of your ID3 tags by a typo.
Comment 1 Scott Wheeler 2003-09-01 05:06:45 UTC
Marking this one as "assigned" and changing it from wishlist to bug status.  Hoping to 
get this one done for 3.2. 
Comment 2 Scott Wheeler 2004-04-13 10:41:26 UTC
*** Bug 79549 has been marked as a duplicate of this bug. ***
Comment 3 Michael Pyne 2004-09-27 12:21:07 UTC
CVS commit by mpyne: 

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:61340-done@bugs.kde.org


  M +1 -0      Makefile.am   1.69
  M +9 -0      collectionlist.cpp   1.89
  M +2 -0      collectionlist.h   1.59
  M +9 -0      juk.cpp   1.225
  M +1 -0      juk.h   1.96
  M +10 -8     musicbrainzquery.cpp   1.23
  M +21 -25    playlist.cpp   1.258
  M +16 -0     playlistbox.cpp   1.127
  M +3 -0      playlistbox.h   1.71
  M +8 -8      playlistitem.cpp   1.95
  M +2 -2      playlistitem.h   1.60
  M +6 -4      tag.h   1.34
  M +35 -84    tageditor.cpp   1.72
  M +3 -18     treeviewitemplaylist.cpp   1.8



Comment 4 Michael Pyne 2004-09-27 12:22:28 UTC
CVS commit by mpyne: 

Doh!!  I forgot to add these rather important files to CVS for bug 61340. :-(

CCMAIL:61340@bugs.kde.org


  A            tagtransactionmanager.cpp   1.1 [GPL (v2+)]
  A            tagtransactionmanager.h   1.1 [GPL (v2+)]