[Digikam-devel] [digikam] [Bug 268688] Write metadata to all images does not remove obsolete tags

Gilles Caulier caulier.gilles at gmail.com
Tue Aug 27 09:54:59 BST 2013


--- Comment #44 from Gilles Caulier <caulier.gilles at gmail.com> ---
Created attachment 81960
  --> https://bugs.kde.org/attachment.cgi?id=81960&action=edit
Patch : debug statements and quick fix

I found where is bug.

It's in loop from MetadataHub::write() where tags list is recreated before to
apply on metadata.

This patch add debug statement to see how is handle tags status from DB and to
create tags list to record.

The quick fix here is to disable the line #712 from metadatahub.cpp to prevent
loading old path tags list from image metadata.

In fact the loop processed just after run on tags status from DB. It do not
handle tags which are not in DB (but always present in image metadata). So,
loop process fine DB tags but ignore to remove obsolete one.

If we disable line #712, all sound work fine. 

This cannot be the ultimate solution. The loop must be simplified as there is
nothing to handle from a previous tags list loading from image metadata.

I see also that there is always an empty tag from DB checked by the loop. By
chance this one is drop when tags list is recorded to image metadata. I don't
know where it come from. Perhaps it's a bug in TagsCache class...

Please review my patch and test. If this solution is fine, i will make a better
patch for next 3.4.0 release planed on next Monday.

Gilles Caulier

You are receiving this mail because:
You are the assignee for the bug.

More information about the Digikam-devel mailing list