| Summary: | Metadata is not written to all pictures in a tag hierarchy | ||
|---|---|---|---|
| Product: | [Applications] digikam | Reporter: | MarcP <iwannaberich> |
| Component: | Tags-Keywords | Assignee: | Digikam Developers <digikam-bugs-null> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | CC: | iwannaberich, metzpinguin |
| Priority: | NOR | ||
| Version First Reported In: | 6.4.0 | ||
| Target Milestone: | --- | ||
| Platform: | Appimage | ||
| OS: | Linux | ||
| Latest Commit: | https://invent.kde.org/kde/digikam/commit/4736b12a1baa18a8435716f6334dc515f31c1160 | Version Fixed/Implemented In: | 7.0.0 |
| Sentry Crash Report: | |||
| Attachments: |
Screen capture showing the issue
Case1.jpg Case2.jpg |
||
|
Description
MarcP
2019-11-08 10:01:20 UTC
Created attachment 123791 [details]
Screen capture showing the issue
This is a screen capture showing the problem with just two files. Observe how the Case2.jpg picture did not had its metadata updated when "Ontario" was moved inside "Canada", unless picture Case1.jpg, which did.
Manually selecting Case2.jpg and doing "Item, Write metadata to file" finally updated the metadata. This should have been done automatically in the previous step.
Marc, how it handles digikam is the metadata standard and completely correct. How should a tag list indicate that the tag is part of the path but not marked? The only tag list that allows this is the proprietary format of ACDsee. DigiKam can handle this format, you could push it as default all the way up in the advanced metadata settings. But I think except digiKam and ACDSee itself, nobody will use this tag list. Maik Can you provide 2 test files that are already tagged with just one more step to reproduce the problem? Maik Updating a "tag"move" is an interesting task, we update the tags that are directly affected. Otherwise, we will have to recrusively update all other tags. That could be a long task. Actually, we have the maintenance tool to do such things. Maik Sure, no problem. I have attached two pictures. This is their current and only metadata:
Case1.jpg Case2.jpg
[X] Ontario [ ] Ontario
[x] Toronto [x] Toronto
Now create an empty tag called "Canada" at the root of your tag tree, and then drag and drop the tag "Ontario" on "Canada". Observe how metadata is updated in Case1.jpg, but not in Case2.jpg. Now, if you click on "Item, Write metadata to file", the metadata is updated. But this last step should have been done automatically.
This issue deals with how digikam tries to propagate a change across a tag tree. Usually, the whole tree is saved in each individual picture (so each image contains a "template" of its parent tags). When changing a parent tag, this change is also saved in each individual picture. However, if some intermediate tag is not "checked", changes are not propagated to that branch.
Btw, I am not complaining about how digikam handles metadata. I think it does a great job considering how different software uses different standards, and it tries to integrate all of them, which is perfect.
I honestly wouldn't have a problem if a picture in a tag tree would be tagged with each one of its subtags, just like lightroom does. The only consequence would be a little bit of clutter because of the amount of tags under each miniature. But in any case, the current implementation is perfectly fine and gives some more flexibility while maintaining the compatibility with other picture managers.
PS: Yes, generally recursively updating a tag tree is something that can affect hundreds or thousands of pictures, and take a long time, but the user is already being warned about it when more than 100 pictures are going to be modified. The user has also the option of using sidecars, which would greatly improve the speed. I think it should be their responsibility if they want to make these big changes in their library. Actually, the recursive update is already the default behavior, except in the very particular case described in this bug report.
Created attachment 123793 [details]
Case1.jpg
Created attachment 123794 [details]
Case2.jpg
Ok, with the sample files I can reproduce it. I even think that the fix is very simple. Maik Git commit 4736b12a1baa18a8435716f6334dc515f31c1160 by Maik Qualmann. Committed on 08/11/2019 at 17:32. Pushed by mqualmann into branch 'master'. get all recursive tags from the moved tag FIXED-IN: 7.0.0 M +2 -1 NEWS M +1 -1 core/libs/album/manager/albummanager_talbum.cpp https://invent.kde.org/kde/digikam/commit/4736b12a1baa18a8435716f6334dc515f31c1160 Wow, you are the best! |