Bug 313203 - Metadata editor doesn't recognize contact info written with digikam 2.6 and higher [patch]
Summary: Metadata editor doesn't recognize contact info written with digikam 2.6 and h...
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Plugin-Generic-MetadataEdit (show other bugs)
Version: unspecified
Platform: Ubuntu Linux
: NOR normal
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-01-13 20:11 UTC by Knut Hildebrandt
Modified: 2017-07-09 07:28 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In: 4.2.0
Sentry Crash Report:


Attachments
Test image with metadata added by digikam (25.22 KB, image/jpeg)
2014-01-05 22:54 UTC, Alan Pater
Details
Quick patch to use nested properties (3.55 KB, text/plain)
2014-01-06 13:34 UTC, Alan Pater
Details
Improved patch to nest xmp.iptc tags (7.86 KB, patch)
2014-02-14 23:28 UTC, Alan Pater
Details
Prefers nested tags, removes non-nested (19.12 KB, patch)
2014-02-25 01:49 UTC, Alan Pater
Details
Patch to prefer nested tags and replace non-nested (8.24 KB, patch)
2014-04-19 23:30 UTC, Alan Pater
Details
MetadataEdit XMP Credits nested version (8.51 KB, patch)
2014-04-23 02:47 UTC, Alan Pater
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Knut Hildebrandt 2013-01-13 20:11:40 UTC
A month ago I filed a bug against digikam because apparently no contact info was written into jpg-files by all versions greater than 2.6 (https://bugs.kde.org/show_bug.cgi?id=309254).

As it turned out, the contact information actually is written into the pictures but in a different manner than in digikam2.5 due to fixing a bug. They can be seen in digikams metadata viewer as well as using exiv2.

Nevertheless they can't be accessed through the kipi metadata editor. The respective fields are greyed out. And when I add the contact info using the kipi plugin a second set of tag is added to the jpg- file. This holds true for the plugin coming with digikam3.0.0 (compiled from git sources) as well as for the one used by gwenview 2.8.4.
.

Reproducible: Always

Steps to Reproduce:
1. write contact info from template into a jpg-file using digikam3.0.0
2. view metadata in metadata viewer of digikam -> it's there
3. open kipi metadata editor (image/metadata/edit all metadata) -> contact info is missing
4. add contact info in kipi metadata editor
5. view metadata in digikam -> it appears a second, slightly different, set of tags containing the contact informat
Actual Results:  
Got a second set of xml tags.

Expected Results:  
Would expect that digikam and kipi plugins use the same set of meta tags. Nevertheless tags written with older version of digikam (2.5 and less) should be visible and editable in kipi metadata editor as well.
Comment 1 Alan Pater 2014-01-05 22:54:13 UTC
Created attachment 84473 [details]
Test image with metadata added by digikam

I have tested version 3.4 and the same issue is still coming up, Contact Info tabs are written at the root level rather then nested.

I opened a bug on Launchpad before seeing this here: 
   https://bugs.launchpad.net/ubuntu/+source/digikam/+bug/1266289
Comment 2 Alan Pater 2014-01-06 00:06:28 UTC
The properties that should be written to are:  

        Xmp.iptc.CreatorContactInfo/Iptc4xmpCore:CiAdr*

Currently, metadataedit is writing to:  

        Xmp.iptc.CiAdr*

This can happen because exiv2 does not enforce correct XMP nested properties, but allows XMP properties and XMP classes to be interchanged at will by applications.
Comment 3 Alan Pater 2014-01-06 13:34:51 UTC
Created attachment 84478 [details]
Quick patch to use nested properties

A quick Find & Replace on xmpcredits.cpp resulted in the attached diff. Should work, no?
Comment 4 Alan Pater 2014-02-14 23:28:20 UTC
Created attachment 85155 [details]
Improved patch to nest xmp.iptc tags

This patch is tested and working.

It writes the full nested tags by default.
It reads the first of the non-nested and nested tags that already exist in an image.

What it does not do is replace the non-nested with a correct nested tag.
To do that, the user needs to uncheck the field for the tag and then rewrite it.
Comment 5 Alan Pater 2014-02-25 01:49:29 UTC
Created attachment 85313 [details]
Prefers nested tags, removes non-nested

This version allows the correct nested tags, if they exist, to be preferred. It also deletes the non-nested tags and writes the nested version.
Comment 6 Alan Pater 2014-04-19 23:30:14 UTC
Created attachment 86179 [details]
Patch to prefer nested tags and replace non-nested
Comment 7 Alan Pater 2014-04-20 12:11:27 UTC
As Knut indicated, the change in Digikam happened between version 2.5 and version 2.6.

https://bugs.kde.org/show_bug.cgi?id=287267 - IptcCore tags are written incorrectly.
Comment 8 Alan Pater 2014-04-23 02:47:15 UTC
Created attachment 86224 [details]
MetadataEdit XMP Credits nested version

Tested using kipi-plugins package built for Ubuntu Trusty on https://launchpad.net/~alan-pater/+archive/dwc

It reads nested and/or non-nested tags. It writes only nested tags and converts non-nested tags to nested.
Comment 9 Marcel Wiesweg 2014-06-30 21:03:00 UTC
Git commit 6414115e0f9d8f28240fb75180d0353938eb30c4 by Marcel Wiesweg.
Committed on 30/06/2014 at 21:02.
Pushed by mwiesweg into branch 'master'.

Apply patch by Alan Pater

M  +101  -14   metadataedit/xmp/xmpcredits.cpp

http://commits.kde.org/kipi-plugins/6414115e0f9d8f28240fb75180d0353938eb30c4