SqlTrack: update uidUrl in db if it changes on metadata change
authorMatěj Laitl <matej@laitl.cz>
Mon, 9 Jul 2012 10:47:12 +0000 (12:47 +0200)
committerMatěj Laitl <matej@laitl.cz>
Mon, 9 Jul 2012 11:01:50 +0000 (13:01 +0200)
commitb108bd655d2759bd2aca6f8f7392c482684d69bb
tree04aca71baa5b4696916982cc876940e4fa4a8700
parent7fae0dfc8b24515565a8d331b35656b688f0c178
SqlTrack: update uidUrl in db if it changes on metadata change

Following scenario lead to statistics, lyrics and labels loss:
 1. make sure a track in local collection is not tagged by
    amarok_afttagger or with musicbrainz uid
 2. turn off "Watch folders for changes" (or work fast)
 3. change title of the track within Amarok
 4. move the file within collection folders using Dolphin
 5. hit "Update Collection"
 6. the stats are lost; normally Amarok should match the track by
    uidUrl, but it isn't updated in the db in step 3., so it doesn't
    find the old track and removes the entry for it.

[Reporters: ^^^ see a nice example of "steps to reproduce"]

This patch changes step 3 to reread and update uidUrl in the database
if necessary.

BUGFIXES:
 * Don't loose statictis, labels and lyrics when changing metadata of a
   track (not tagged by afttagger) followed by moving it.

BUG: 292245
CCMAIL: Ralf Engels <ralf-engels@gmx.de>
FIXED-IN: 2.6
ChangeLog
src/core-impl/collections/db/sql/SqlMeta.cpp
src/core-impl/collections/db/sql/SqlMeta.h