[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-bugs-dist
Subject:    [Bug 268688] Write metadata to all images does not remove obsolete
From:       Leif Huhn <leif () dkstat ! com>
Date:       2011-07-12 14:39:53
Message-ID: E1Qge7t-0008Qh-9h () bugs ! kde ! org
[Download RAW message or body]

https://bugs.kde.org/show_bug.cgi?id=268688


Leif Huhn <leif@dkstat.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |leif@dkstat.com




--- Comment #11 from Leif Huhn <leif dkstat com>  2011-07-12 14:39:52 ---
Shouldn't DigiKam just remove the tag from the file?  If I didn't want DigiKam
removing tags, I would tell it not to write metadata to the files.

From reading the code, I think this is what DigiKam will do:

1. Add image already tagged Person/Alice
2. Close DigiKam.  Open another program and tag the image with Person/Bob
3. Close other program.  Open DigiKam.  Tag Person/Charles.  Write the
metadata.
DigiKam won't delete Person/Bob.  That's good!
4. Remove Person/Alice.  Write metadata.
DigiKam won't delete Person/Alice.  That's bad.

However, if I ever delete a tag in the DigiKam UI _and_ I have DigiKam set to
write metadata, I expect the tag to be deleted.  If I didn't want to write
metadata I would tell DigiKam not to write metadata at all.

I don't think DigiKam should prompt the user if they should write the metadata
to the file when they remove a tag (there are already many options for what
kind of metadata we should write to the file in the settings menu).

When DigiKam decides whether to write data in MetadataHub, we have in loadTags:

    // Those tags which had been set as MetadataAvailable before,
    // but are not contained in this set, have to be set to MetadataDisjoint

That means the change won't be written to the file.

What I think we need is a marker in the DigiKam DB that the tag was explicitly
removed.  So DigiKam would have a record that the tag does not exist because
the user removed it inside DigiKam.  Then we can avoid removing Person/Bob in
the example but know to remove Person/Alice.

-- 
Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic